是否可以在两个数据库之间,或者理想情况下,在数据库和该数据库的转储版本之间生成差异转储mysqldump
?
这是我遇到的问题——我有一个 MySQL 的主动/被动 HA 镜像,实际数据库数据(物理 MyISAM 文件、索引等)位于共享 DRBD 镜像上。上周,主节点发生故障,DRBD 主节点从主节点转移到辅助节点,服务接管按预期发生。
当然,已将大量更改写入辅助副本的 DRBD 镜像版本,因此当主副本恢复时,它会接管 DRBD 卷,但双方都认为它们的一半“不同步”(即StandAlone
)。
所以,现在我遇到了一种情况,数据库上发生了两组不同的事务:
发生在主节点关闭并且数据正在写入辅助节点时发生的事情;
自从主节点恢复并再次接管服务后发生的事情;他们从来没有同步!
DRBD 使我能够将镜像的“一半”(处于其当前分区状态)恢复为“主”修订版,但可以看出,任何一种方式都会导致我丢失数据。
哦,是的:没有复制,也没有本地事务日志,所以没有可重放的二进制日志。哎呀。 掌心
当然,每晚都有备份,所以我可以将数据库恢复到去年大约凌晨 2 点左右的任何状态。
我想我想要做的是恢复到现在在辅助“一半”上的数据库版本(即在主服务器关闭时发生的更改),然后尝试以某种方式应用从那时起的状态更改到累积在主数据库的“一半”上的数据库的当前状态。
问题是,如果不重放事务日志,我不知道如何去做。
见解赞赏,并在此先感谢!