Mysql

如何監控大型 .sql 文件的導入進度?

  • January 17, 2022

我正在導入 7 GBfoobar.sql來恢復本地數據庫中的表。

$ mysql -h localhost -u root 'my_data' < foobar.sql

$ mysql --version
/usr/local/mysql/bin/mysql  Ver 14.12 Distrib 5.0.96, for apple-darwin9.8.0 (i386) using readline 5.1

我如何監控其進度?

如果您只是從 *nix 上的 CLI 的轉儲文件導入,例如

mysql -uxxx -pxxx dbname < /sqlfile.sql

然後首先在您的作業系統上安裝管道查看器,然後嘗試這樣的事情:

pv sqlfile.sql | mysql -uxxx -pxxxx dbname

這將在程序執行時顯示一個進度條。

它非常有用,您還可以使用它來估計 mysqldump 進度。

pv 轉儲sqlfile.sql並將它們傳遞給 mysql(因為管道運算符)。在傾倒時,它顯示了進展。很酷的是 mysql 只在它可以進行的情況下以最快的速度獲取數據,因此 pv 可以顯示導入的進度。我沒有任何證據。但似乎是這樣。我想有一些緩衝區使用,但在某些時候我認為mysql當它仍然忙於處理時不會再讀取任何數據。

管道查看器螢幕截圖

引用自:https://dba.stackexchange.com/questions/17367