Installer og brug pv
(den er tilgængelig som en yum-pakke til CentOS)
http://www.ivarch.com/programs/pv.shtml
Forudsat at den forventede størrelse af den resulterende dumpfile.sql-fil er 100m (100 megabytes), er brugen af pv
ville være som følger:
mysqldump <parameters> | pv --progress --size 100m > dumpfile.sql
Konsoloutputtet vil se sådan ud:
[===> ] 20%
Se på man-siden man pv
for flere muligheder. Du kan vise overførselshastigheden, eller hvor lang tid der er gået, eller hvor mange bytes der er overført, og mere.
Hvis du ikke kender størrelsen på din dump-fil, er der en måde at få en størrelse på MySQL-databasen fra table_schema - den vil ikke være størrelsen på din dump-fil, men den kan være tæt nok til dine behov:
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;
Opdater
Efter min erfaring, når du dumper hele MySQL-serveren, er den faktiske ukomprimerede størrelse af mysql-dumpen (ved brug af mysqldump --hex-blob-indstillingen) groft sagt mellem 75% til 85% af den levende størrelse af MySQL-data opnået fra information_schema. Så for en generel løsning kan jeg prøve følgende:
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