我正在导入 7 GBfoobar.sql来恢复本地数据库中的表。
foobar.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当它仍然忙于处理时不会再读取任何数据。
sqlfile.sql
mysql