Instal dan gunakan pv
(tersedia sebagai paket yum untuk CentOS)
http://www.ivarch.com/programs/pv.shtml
Dengan asumsi ukuran yang diharapkan dari file dumpfile.sql yang dihasilkan adalah 100m (100 megabyte), penggunaan pv
akan menjadi sebagai berikut:
mysqldump <parameters> | pv --progress --size 100m > dumpfile.sql
Output konsol akan terlihat seperti:
[===> ] 20%
Lihat halaman manual man pv
untuk lebih banyak pilihan. Anda dapat menampilkan kecepatan transfer, atau berapa banyak waktu yang telah berlalu, atau berapa banyak byte yang telah ditransfer, dan banyak lagi.
Jika Anda tidak tahu ukuran file dump Anda, ada cara untuk mendapatkan ukuran database MySQL dari table_schema - itu tidak akan menjadi ukuran file dump Anda, tetapi mungkin cukup dekat untuk kebutuhan Anda:
SELECT table_schema AS "Database", ROUND(SUM(data_length + index_length) / 1024 / 1024, 2) AS "Size (MB)" FROM information_schema.TABLES GROUP BY table_schema;
Perbarui
Dalam pengalaman saya, ketika membuang seluruh server MySQL, ukuran sebenarnya dari dump mysql yang tidak terkompresi (menggunakan opsi mysqldump --hex-blob) kira-kira antara 75% hingga 85% dari ukuran langsung data MySQL yang diperoleh dari information_schema. Jadi untuk solusi umum, saya mungkin mencoba yang berikut ini:
SIZE_BYTES=$(mysql --skip-column-names <parameters> <<< 'SELECT ROUND(SUM(data_length) * 0.8) AS "size_bytes" FROM information_schema.TABLES;')
mysqldump <parameters> --hex-blob | pv --progress --size $SIZE_BYTES > dumpfile.sql