mysqldump支持进度条吗?

在运行mysqldump时,有没有办法确定备份完成了多少或剩下多少

安装并使用pv(它作为适用于CentOS的yum软件包提供)

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

PV(“管道查看器”)是监控数据进度的工具
通过管道。它可以插入任何正常的管道中
在两个进程之间提供数据传输速度的直观指示
正在通过,花了多长时间,离完成还有多远
是的,并且估计需要多长时间才能完工

假设生成的dumpfile.sql文件的预期大小为100m(100兆字节),则pv的使用如下:

mysqldump<参数>|pv——进度——尺寸100米>dumpfile.sql

控制台输出如下所示:

[=>]20%

查看手册页man pv了解更多选项。您可以显示传输速率、经过的时间或传输的字节数等

如果您不知道转储文件的大小,有一种方法可以从表_模式获取MySQL数据库的大小-它不是转储文件的大小,但可能足够接近您的需要:

选择表模式作为“数据库”,从信息模式中选择四舍五入(总和(数据长度+索引长度)/1024/1024,2)作为“大小(MB)”。表按表模式分组;

更新

根据我的经验,在转储整个MySQL服务器时,MySQL转储的实际未压缩大小(使用mysqldump–hex blob选项)大约是从information_schema获得的MySQL数据的活动大小的75%到85%。因此,对于一般解决方案,我可以尝试以下方法:

SIZE\u BYTES=$(mysql——跳过列名<参数><<'从信息\u schema.TABLES;'中选择舍入(总和(数据长度)*0.8)作为“SIZE\u BYTES”)

mysqldump<参数&gt--十六进制blob | pv--进度--大小$size_字节>dumpfile.sql

发表评论