rdiff 大文件差异备份(用于任意数据库文本导出的差异备份)

企图用 diff 去差异备份一个 dump 出来 800MB+ 的数据库,被告知:

diff: memory exhausted

于是:http://superuser.com/a/283012/586821

在 centos6 下:

yum install rdiff-backup

先做一个全量备份,假设全量备份是 backup_base.sql

然后我们需要先对这个全量备份做一个签名:

rdiff signature backup_base.signature

然后就会产生了一个 base.signature 文件。

然后我们每天出来的新备份全量文件是 backup_20170304.sql

我们通过这样来生成差异补丁文件:

rdiff delta backup_base.signature backup_20170304.sql backup_20170304.delta

于是我们得到一个非常小的 .delta 文件,差异备份保存这一份即可。

如果我们需要恢复 backup_20170304.sql 这个文件,我们用这个命令:

rdiff patch backup_base.sql backup_20170304.delta backup_20170304.recover.sql

于是我们就得到了 backup_20170304.recover.sql 这个恢复的文件。

这个时候,我们只需要大概年初或者月初的这个基准全量备份,然后每天的数据库备份都可以用这种方式差异生成,极大节省了存储空间。

我们可以用 md5sum 命令来看看 backup_20170304.sql 这个原始的全量日备份是和 backup_20170304.recover.sql 这个恢复出来的文件是一致的。


【转载请附】愿以此功德,回向 >>

原文链接:http://www.huangwenchao.com.cn/2017/03/rdiff-backup.html【rdiff 大文件差异备份(用于任意数据库文本导出的差异备份)】

发表评论

电子邮件地址不会被公开。 必填项已用*标注