sql >> Databáze >  >> RDS >> Mysql

Podporuje mysqldump ukazatel průběhu?

Nainstalujte a používejte pv (je k dispozici jako yum balíček pro CentOS)

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

Za předpokladu, že očekávaná velikost výsledného souboru dumpfile.sql je 100 m (100 megabajtů), použití pv by bylo následující:

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

Výstup konzoly bude vypadat takto:

[===> ] 20%

Podívejte se na manuálovou stránku man pv pro více možností. Můžete zobrazit přenosovou rychlost nebo kolik času uplynulo nebo kolik bajtů bylo přeneseno a další.

Pokud neznáte velikost souboru výpisu, existuje způsob, jak získat velikost databáze MySQL ze schématu table_schema - nebude to velikost souboru výpisu, ale může být dostatečně blízko pro vaše potřeby:

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;

Aktualizovat

Podle mých zkušeností je při dumpingu celého serveru MySQL skutečná nekomprimovaná velikost výpisu mysql (při použití volby mysqldump --hex-blob) zhruba mezi 75 % až 85 % živé velikosti dat MySQL získaných z information_schema. Takže pro obecné řešení bych mohl zkusit následující:

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. Pochopení nové vlny tepla MySQL

  2. SQLAlchemy Reflection:Jak mohu dotazovat data z konkrétních sloupců?

  3. MySQL a PHP:Vyhledávání pomocí více klíčových slov

  4. Sekvence hibernace na oracle, @GeneratedValue(strategie =GenerationType.AUTO)