在数据库备份过程中,我生成一个文本转储文件.由于数据库非常庞大,转储文件也很庞大,所以我用gzip压缩它.生成转储时压缩是内联完成的(感谢Unix管道!).
在进程结束时,我通过观察最后一行来检查转储文件的有效性,并检查"转储完成"字符串的存在.在我的脚本中,我通过将最后一行提取到变量中来实现:
str=`zcat ${PATHSAVE}/dumpFull.sql.gz | tail -n1`
Run Code Online (Sandbox Code Playgroud)
由于数据库转储文件很大(目前超过200Gb),因此最终进程检查需要花费大量时间(目前超过180分钟).
我正在寻找一种方法来快速提取我的.gz文件的最后一行...任何人都有想法?
注1:对于解释上下文,我们可以说数据库是MySql社区,备份工具是mysqldump,生成的dumpfile是一个全文文件.操作系统是CentOs.备份脚本是Bash shell脚本.
注意2:我知道Percona xtraBackup,但在我的情况下,我想使用mysqldump进行这个特定的备份工作.恢复所需的时间不是问题.