是否有任何方法在`gunzip

每周一次,我需要在我的本地开发环境中运行一个巨大的数据库更新,如下所示:

$ gunzip < /path/to/database1.sql.gz | mysql -uUSER -p database1 &
$ gunzip < /path/to/database2.sql.gz | mysql -uUSER -p database2 &
$ gunzip < /path/to/database3.sql.gz | mysql -uUSER -p database3 &

我试图运行这些隔夜,因为它可能需要几个小时才能完成。

你能帮我提出一个方法来显示这些任务的进展吗?

这里有一些猜测:

>获取数据库的未压缩文件大小,并与我的本地数据库大小进行比较
>在mysql中运行show processlist查看它当前插入的表(我当前的方法,但是一些表是巨大的,并且我的至少一个db只有一个巨型表,所以大部分的进程被困在这个表中,选项少于帮助)

所有的db.sql.gz文件是标准的gzipped mysqldumps,所以我不认为我可以建立任何东西到转储,给我一个更新。 (但我很开心,如果我错过了一些东西)

赏金规则

答案必须:

>提供有用和相当准确的进度(视觉类似scp(首选!)或通过简单的进度数据库表,可以轻松访问)。
>不打破常规mysqldump导出或常规gunzip … | mysql import(对于其他工程师可能不会使用你想出的)
>不给我的DBA心脏病发作 – 所以保持容易上特殊mysqldump或替代mysql分支请求。

您可以在命令中使用-v:Verbose模式(显示进度),或者有另一个使用Pipe Viewer(pv)的方法,它显示gzip,gunzip命令的进度如下:

$ pv database1.sql.gz | gunzip | mysql -u root -p database1

这将输出类似于scp的进度:

$ pv database1.sql.gz | gunzip | mysql -uroot -p database1
  593MiB 1:00:33 [ 225kiB/s] [====================>              ] 58% ETA 0:42:25

您还可以使用管道查看器来监视mysqldump:

mysqldump -uroot -p database1 | pv | gzip -9 > database1.sql.gz

如果你还没有pv,你可以安装:

yum install pv

或与macports

sudo port install pv
http://stackoverflow.com/questions/19598797/is-there-any-way-to-show-progress-on-a-gunzip-database-sql-gz-mysql-pr

本站文章除注明转载外,均为本站原创或编译
转载请明显位置注明出处:是否有任何方法在`gunzip