Mysql
 sql >> база данни >  >> RDS >> Mysql

mysqldump поддържа ли лента за напредък?

Инсталирайте и използвайте pv (достъпен е като yum пакет за CentOS)

http://www.ivarch.com/programs/pv.shtml

Ако приемем, че очакваният размер на получения файл dumpfile.sql е 100 m (100 мегабайта), използването на pv ще бъде както следва:

mysqldump <parameters> | pv --progress --size 100m > dumpfile.sql

Изходът на конзолата ще изглежда така:

[===> ] 20%

Вижте man страницата man pv за повече опции. Можете да покажете скоростта на трансфер или колко време е изтекло, или колко байта са прехвърлени и др.

Ако не знаете размера на вашия дъмп файл, има начин да получите размер на базата данни MySQL от table_schema - той няма да е размерът на вашия дъмп файл, но може да е достатъчно близо за вашите нужди:

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;

Актуализиране

Според моя опит, когато изхвърлям целия MySQL сървър, действителният некомпресиран размер на дъмпа на mysql (използвайки опцията mysqldump --hex-blob) е приблизително между 75% до 85% от живия размер на MySQL данните, получени от information_schema. Така че за общо решение може да опитам следното:

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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Извличане на редове, добавени миналия час

  2. Как да използвам SUBSTRING() в MySQL

  3. Mysql select * от не връща всички редове

  4. Грешка в MySQL при опит за съкращаване на таблицата

  5. Как да използвам неподписани int/long типове с Entity Framework?