Sekenre Asked: 2009-05-31 17:31:26 +0800 CST2009-05-31 17:31:26 +0800 CST 2009-05-31 17:31:26 +0800 CST 通过 Internet 获取 mysql 数据库备份快照的最有效方法是什么? 772 好的情况是这样的: 我们目前使用 mysqldump 然后 bzip2 压缩结果并将其 scp 回我们的备份服务器。这是一个耗时的手动过程,并且没有创建快照。 我目前正在尝试使用 rsync 传输新旧转储文件之间的差异,但压缩效率要低得多。 欢迎任何其他建议。 backup mysql 5 个回答 Voted Best Answer Michael Renner 2009-05-31T17:40:57+08:002009-05-31T17:40:57+08:00 一种方法是将数据库复制设置到备份服务器并在那里创建备份。 如果这在您的环境中不可行,那么您的第二个最佳机会是在普通 SQL 转储(不要忘记--compress)或相同的 gzip 上进行 rsync,它已使用--rsyncable. 我不知道 rsync 在这方面的表现如何,因为在转储文件中插入/删除的值会导致文件中的“移位”,rsync 需要检测以防止重新传输未更改的数据。 当你用它运行 rsync 时,--stats它应该报告它实际通过网络发送了多少字节,给你一些数字。 Xerxes 2009-05-31T17:51:50+08:002009-05-31T17:51:50+08:00 您尝试了以下选项?... rsync -a --compress --compress-level=9 事实上,这应该比使用 compressing-remote-shell 或 compressing-transport 执行得更好(更高的压缩比)(参见rsync(1))。 Dan Udey 2009-06-06T11:50:01+08:002009-06-06T11:50:01+08:00 我一直使用的解决方案: 复制到另一台服务器,最好是在相同的物理位置(这样如果需要,您可以进行手动故障转移)。 使用--master-data --single-transaction(假设您使用InnoDB)设置一个shell脚本以在该服务器上进行备份,以便您可以获得主日志的位置并确保数据库转储中的事务一致性. 我写了这个,可能适合您的目的或不适合您的目的。 将备份上传到您希望备份的任何位置。我使用我放在一起的另一个脚本将我的上传到 Mosso Cloud Files(如果您在 Mosso 服务器上,这将非常快) 。 在代表您的数据对您的重要性的时期内运行此备份。我们每两个小时运行一次。 去度假。 elint 2009-05-31T18:54:07+08:002009-05-31T18:54:07+08:00 不确定您是否使用 Windows,但我很幸运 MyWitch 在远程服务器上管理 MySQL 数据库,并且他们有一个名为 DumpTimer 的产品(我没有使用过),它可以让您安排 mysqldumps 并下载它们。共享软件,因此您必须为完整版付费才能让您作为 Windows 服务运行。 DumpTimer 链接:www.richtsoft.com/mysql_17_backup.html (剪切/粘贴,因为新用户无法添加超链接) Amandasaurus 2009-06-27T07:03:04+08:002009-06-27T07:03:04+08:00 您可以将每个表中的数据转储到按主键(或其他内容)排序的 CSV 文件中。然后使用split根据行拆分它。然后使用 rsync 复制这些文件。因此,如果前 1,000 行(即行)没有更改,则不会重新同步该文件。你可以让它们在服务器和客户端上不加密,然后让 rsync 在网络上进行压缩。这样它就会很快知道“哦,我在这里添加 10 行”等。
一种方法是将数据库复制设置到备份服务器并在那里创建备份。
如果这在您的环境中不可行,那么您的第二个最佳机会是在普通 SQL 转储(不要忘记
--compress
)或相同的 gzip 上进行 rsync,它已使用--rsyncable
. 我不知道 rsync 在这方面的表现如何,因为在转储文件中插入/删除的值会导致文件中的“移位”,rsync 需要检测以防止重新传输未更改的数据。当你用它运行 rsync 时,
--stats
它应该报告它实际通过网络发送了多少字节,给你一些数字。您尝试了以下选项?...
事实上,这应该比使用 compressing-remote-shell 或 compressing-transport 执行得更好(更高的压缩比)(参见rsync(1))。
我一直使用的解决方案:
不确定您是否使用 Windows,但我很幸运 MyWitch 在远程服务器上管理 MySQL 数据库,并且他们有一个名为 DumpTimer 的产品(我没有使用过),它可以让您安排 mysqldumps 并下载它们。共享软件,因此您必须为完整版付费才能让您作为 Windows 服务运行。
DumpTimer 链接:www.richtsoft.com/mysql_17_backup.html
(剪切/粘贴,因为新用户无法添加超链接)
您可以将每个表中的数据转储到按主键(或其他内容)排序的 CSV 文件中。然后使用
split
根据行拆分它。然后使用 rsync 复制这些文件。因此,如果前 1,000 行(即行)没有更改,则不会重新同步该文件。你可以让它们在服务器和客户端上不加密,然后让 rsync 在网络上进行压缩。这样它就会很快知道“哦,我在这里添加 10 行”等。