好的情况是这样的:
我们目前使用mysqldump,然后bzip2压缩结果并将其返回到我们的备份服务器。 这是一个耗时的手动过程,并且没有创build快照。
我目前正在尝试使用rsync传输旧的和新的转储文件之间的差异,但压缩效率要低得多。
任何其他build议将受到欢迎。
一种方法是将数据库复制设置到备份服务器,并在那里创build备份。
如果在你的环境中这是不可行的,你的第二好的机会就是在普通的SQL转储(不要忘记--compress )上,或者在同一个被压缩了--rsyncable 。 我不知道rsync是如何运行的,因为dump文件中的插入/删除值会导致rsync需要检测的文件发生“移位”,以防止未被更改的数据的重新传输。
当你使用--stats运行rsync时,它应该报告实际上通过networking发送了多less字节,给你一些数字。
您尝试了以下选项?
rsync -a --compress --compress-level=9
事实上,与使用压缩远程shell或压缩传输(参见rsync(1) )相比,这应该会更好(压缩比更高)。
我一直使用的解决scheme:
不知道你是否使用Windows,但是MyWitch在pipe理远程服务器上的MySQL数据库方面运气不错,而且他们有一个叫DumpTimer的产品(我没用过),它可以让你安排mysqldumps并下载它们。 共享软件,所以你不得不支付完整版本,让你作为Windows服务运行。
链接到DumpTimer:www.richtsoft.com/mysql_17_backup.html
(剪切/粘贴,因为新用户不能添加超链接)
您可以将每个表中的数据转储到一个CSV文件,由主键(或其他)sorting。 然后使用split根据行拆分它。 然后使用rsync来复制这些文件。 所以如果前1000行(即行)没有改变那个文件将不会被rsynced。 你可以不encryption的服务器和客户端,并获得rsync在networking上进行压缩。 这样它会很快它知道“哦,我在这里添加10条线”等