我在 unix 服务器上管理多个数据库,并使用mysqldump
. 由于(其中一些)这些数据库非常大(20+Gb),我通常使用bzip2
, 压缩备份的 .sql 文件以获取压缩的 bz2 文件。
作为备份过程的一部分,我检查新备份文件的大小是否大于或等于先前备份文件的大小——我们每天都向这些数据库添加数据,但很少从这些数据库中删除数据数据库。
对备份文件大小的检查是对备份质量的检查 - 鉴于我们的数据库主要只是在大小上增长,如果新备份小于旧备份,则意味着 a) 某些内容已从数据库中删除(在这种情况下,我应该检查一下...)或 b)备份出了问题(在这种情况下,我应该检查一下原因...)。
但是,如果我比较 bz2 文件的大小 - 例如,使用比较(使用test
) of stat %s
,即使数据库的大小增加了,bz2 文件也可能缩小了 - 大概是因为更有效的压缩。
那么 - 我如何比较备份文件的大小?
- 一种选择是将之前的备份文件从 .bz2 解压缩为 .sql,然后比较这些 .sql 文件的大小。但是,鉴于这些文件非常大(20+Gb),压缩/解压缩可能需要一段时间......
- 另一种选择是将以前的备份文件保留为 .sql,然后再次比较 .sql 文件。这是我的首选选项,但需要注意确保我们最终不会出现大量 .sql 文件 - 因为这会很快耗尽我们的硬盘驱动器。
或者,SO 社区中的某个人可能有更好或更聪明的想法......?