sql >> Database teknologi >  >> RDS >> Mysql

Understøtter mysqldump en statuslinje?

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



  1. ASIN() Eksempler i SQL Server

  2. PHP - Filtrering efter MySQL-feltværdi

  3. En introduktion til Concurrent Collection API'er i Java

  4. Transform ODBC-data i CloverDX