增量/差异MySQL备份使用mysqldump

有什么技术可以使用mysqldump(或类似命令)为MySQL进行增量备份或差异备份吗?

您可以通过启用并备份二进制日志来模拟增量备份。 请参阅“通过启用二进制日志进行增量备份”下的http://dev.mysql.com/doc/refman/5.1/en/backup-methods.html

如果您使用InnoDB,请签出Xtrabackup(由Percona提供)。 它可以做增量。

http://www.percona.com/docs/wiki/percona-xtrabackup:xtrabackup:incremental?rev=1289183209

干杯

我使用binlogs,但它们不是最终的解决scheme,我也倾向于依靠快照。

这主要有两个原因:

  • Binlogs存储所有更改。 一周的binlogs可能会比一周之后的两个快照之间的差异大得多。 唯一的解决办法是binlog往往压缩得很好(通常远低于10%)。
  • 如果您需要执行审计或返回,那么对二进制日志进行回放将花费很长时间,而且二进制日志越大,出错的几率就越大,因此您需要定期快照。

我有大量的快照,最近没有压缩或差异。 我用差异进行了实验,发现即使是没有上下文的选项,结果差异也是比较大的。

没有尝试所有的select,我发现最好的东西是rdiff。 这减less了大约5%的大小,然后用xz压缩到1%的区域。

尽piperdiff签名文件不能很好地压缩,因为它们是散列集合(与随机数据相同),将它们压缩在一起应该会产生好的结果。

许多人不需要像大多数情况下那样的解决scheme,如果出现故障,他们需要用最新的图像存储数据库,并尽可能快地将其更新。

但是,如果你有一个复杂的系统,需要大量的会计,审计,debugging等(比博客更重要的事情),那么快照的高效存储就变得非常重要。

检查https://sourceforge.net/projects/mysqlincrementalbackup/脚本。 MyISAM和Innodb的增量备份解决scheme。