如何备份在备份之间仅有微小变化的数据库转储?

如何备份在备份之间仅有微小变化的数据库转储?

我每晚都会有一个 posgresql 转储文件,我喜欢保留每一个。每个文件大小为 14 GB,所以我的备份驱动器很快就会满了。

每天的差异只有 100MB。如何进行每日备份而不浪费大量空间。

PS:我用 tar 压缩了 1 个文件,大小降到了 5GB。我希望压缩两个文件时比例会更好,但是没有。压缩后的 2 个转储大小为 10GB

答案1

我想继续 Tometzyk 提到的 rdiff,并建议使用备份软件rdiff-备份。它保留最新备份的镜像副本,并将历史记录保存为压缩的反向差异。我记得我曾经在数据库转储上使用它,并且得到了相当不错的(小)增量。也就是说,你让你的 mysqldump 在每个转储上创建一个具有相同文件名的新文件,然后在该转储上运行 rdiff-backup。

rdiff-backup 既可以在本地运行(包括网络挂载),也可以通过 ssh 运行。请随意查看rdiff-backup 示例页面针对一些常见的使用场景。

答案2

这是另一种方法;由于您的增量备份大小很小,因此可能只有少数 MySQL 表会定期更改,并且您可能正在备份许多每天都不会更改的大型表。如果您能确定是否是这种情况,您可以按较短的时间表(可能每周一次)备份整个数据库,并使用以下方法更频繁地备份较不稳定的表:

mysqldump [database name] [table1 table2 ....]

以下是mysqldump 文档

答案3

rdiff 来自库同步是一个开源程序,可以计算任何(二进制或文本)文件之间的差异(所谓的增量)。

还有一个备份系统——表里不一— 使用 librsync 来高效存储备份。

答案4

您可以使用 7zip 实用程序存档文件并将其打包为固定存档

相关内容