繁体   English   中英

MySQL DB差异备份

[英]MySql DB differential backup

我已在14:00 PM在复制服务器上还原了实时数据库备份(已在01:00 AM完成)。

备份已成功还原,复制服务器已正确更新,但是如何还原实时服务器在01:00 AM至14:00 PM之间已更新的数据。

有没有可用的工具,或者可以通过任何脚本或命令行使用,请提供帮助。

此致苏拉卜

您无法“还原”此类数据(因为它们从未在该接收实例中访问过),但是可以在备份后“应用”对实时数据库所做的所有更改。

最简单的方法是让复制服务器(通常称为“从属服务器”)在进行备份时从主服务器的binlog开始复制。 如果使用“ mysqldump”进行备份,则“ --master-data”选项将为您完成备份。

现在您错过了这个机会,我看到了两种可能的方法:
1)使用“ mysqldump --master-data”重复全部操作。
2)使用“ mysqlbinlog”将从主站到从站的那段时间的变化反馈到“ mysql”中:
mysqlbinlog ... | MySQL的-H奴隶...

方法2要求您仍然具有这些binlog,并且即使在14:00 之后的01:00-14:00期间提供了那些值,它也假定主服务器的更改适用于从属服务器。不举行。
另外,它要求您可以确定要传输的第一个和最后一个更改在二进制日志中的确切位置。 不要尝试使用“ --start-datetime”和“ --stop-datetime”进行传输,我发现长时间运行的事务会产生一些意外的影响。 仅将它们用于查看01:00和14:00左右的动作,确定您需要执行的第一个动作(接近01:00)和已经执行的第一个动作(接近14:00)的确切位置,然后使用“-开始位置”和“-停止位置”进行传输。

方法1绝对更容易进行,我强烈建议您使用。 MySQL手册在http://dev.mysql.com/doc/refman/5.5/en/mysqldump.html页面上说明了如何设置从站,其中涵盖了所有内容。

如果您使用物理文件副本或LVM快照进行初始传输(而不是“ mysqldump”),则也要重复该操作,但要记录主服务器的binlog位置(“显示主服务器状态”),然后让从服务器从此处启动( “将母版更改为...”)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM