【发布时间】:2014-02-07 09:06:48
【问题描述】:
众所周知,mysql 是异步进行复制的。我听说我需要一些额外的插件来做
同步复制。
那么让我们考虑一下异步复制的情况: master 将事件写入其二进制日志,但不知道 master2 是否或何时检索并处理了它们。使用异步复制,如果 master1 崩溃,它已提交的事务可能不会传输到任何 master2。
我的问题是这些事务是否会在 master1 再次启动时最终被复制到 master2?如果不是,那就是一个很大的不一致问题。
对于主从复制,我的问题是相同的,并且 master 出现了同样的情况。
我需要一些特殊的配置参数来让它自动发生吗?
或者我是否必须手动从 master1 转储数据并导入到 master2 等?
======
更新: 我可能误用了上面的“崩溃”这个词,我只是想参考一下master1在一段时间内无法将数据同步给其他人的情况。下面的回复(感谢)包括两种情况:例如由于磁盘故障而导致的真正不可恢复的崩溃,或由于网络问题而导致的暂时离线问题等。
【问题讨论】:
-
谁说 master1 会回来?可能是硬件出了问题。如果一致性对您很重要,那么您需要能够验证一致性的东西。 Percona 的 XtraDB Cluster 是一个常见的选择。
-
我只是假设 master1 稍后会回来。假设故障不是由于硬件故障,而是网络问题等。
-
Ceejayoz:感谢您为 Percona XtraDB 集群提供的意见。我也注意到类似的东西:Galera Cluster。市场上,谁是mysql数据复制解决方案的领导者?
-
Percona 在后台使用 Galera。我想大多数人会认为 Percona 的解决方案是同步 MySQL 复制的领导者之一。
标签: mysql database database-replication transactional-replication