Installeer en gebruik pv
(het is beschikbaar als een yum-pakket voor CentOS)
http://www.ivarch.com/programs/pv.shtml
Ervan uitgaande dat de verwachte grootte van het resulterende bestand dumpfile.sql 100 m (100 megabytes) is, is het gebruik van pv
zou als volgt zijn:
mysqldump <parameters> | pv --progress --size 100m > dumpfile.sql
De console-uitvoer ziet er als volgt uit:
[===> ] 20%
Kijk naar de manpagina man pv
voor meer opties. U kunt de overdrachtssnelheid weergeven, of hoeveel tijd er is verstreken, of hoeveel bytes zijn overgedragen, en meer.
Als u de grootte van uw dumpbestand niet weet, is er een manier om een grootte van de MySQL-database te verkrijgen uit het table_schema - het zal niet de grootte van uw dumpbestand zijn, maar het kan voldoende zijn voor uw behoeften:
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;
Bijwerken
Mijn ervaring is dat bij het dumpen van de hele MySQL-server, de werkelijke ongecomprimeerde grootte van de mysql-dump (met behulp van de mysqldump --hex-blob-optie) ruwweg tussen 75% en 85% van de live grootte van MySQL-gegevens die is verkregen uit information_schema. Dus voor een algemene oplossing zou ik het volgende kunnen proberen:
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