是否有可能使用mysqldump生成差异转储 – 在两个数据库之间,或者理想情况下,在数据库和该数据库的转储版本之间?
这是我得到的问题 – 我有一个MySQL的主动/被动HA镜像与实际的DB数据(物理MyISAM文件,索引等)驻留在一个共享的DRBD镜像。 上周,主节点出现故障,DRBD主节点从主节点转移到次节点,服务接pipe发生像本来应该的那样。
当然,一系列的变化已经被写到副本版本的DRBD镜像,所以当主副本恢复时,它接pipe了DRBD卷,但是双方都认为他们的一半“不同步”(即StandAlone )。
所以,现在我有一种情况,数据库上有两组不同的事务:
主节点closures和数据写入辅助节点时发生的情况;
自主节点恢复并重新开始服务之后发生的事情; 他们从来没有同步!
DRBD使我能够恢复镜像(在当前的分区状态)的“一半”作为“主”版本,但是可以看出,无论哪种方式都会导致我丢失数据。
哦,是的:没有复制,没有本地事务日志,所以没有binlog重播。 哎呀。 捂脸
当然,每晚都有备份,所以我可以将数据库恢复到过去一年的任何时间。
我想我要做的是恢复到现在的辅助“一半”的数据库的版本(即改变发生在主要被closures时),然后尝试以某种方式应用从该点的状态变化数据库的当前状态累积在小学的“一半”。
问题是,我不知道如何去做,而不重播事务日志。
见解感谢,并提前感谢!
哎哟。 尴尬的情况,我希望你已经打开binlogging现在…
两个可能有帮助的工具:
您不应该需要在失败的服务器上重播数据。 这种情况被称为裂脑,你需要告诉DRBD你想要做什么。
http://www.drbd.org/users-guide/s-resolve-split-brain.html
编辑:没有意识到你说的小学回来网上…不是很确定。 二进制日志应该包含服务器执行的所有事务的logging。
编辑(采取2):我需要做一个笔记来阅读整个问题之前张贴… :(对不起