MySQL 的主从同步能否实现容灾呢?

2016-11-21 11:10:16 +08:00
 abcbuzhiming
mysql 有主从同步复制功能,现在有两台服务器 A 和 B , A 为主服务器, B 平时不提供服务,但是和 A 保持数据一致。一旦 A 挂了,就切换到 B ,我刚开始以为可以用主从同步实现。后来阅读文档后发现 MySQL 的主从模式其实是为了读写分离设计的,不是为了容灾。 A 一挂,切换到 B , B 的数据就和 A 不一致了,将来要切换回去就很麻烦,有更好的办法吗
5294 次点击
所在节点    MySQL
9 条回复
czb
2016-11-21 11:11:53 +08:00
容灾是 Master-Master Replication
enenaaa
2016-11-21 11:56:13 +08:00
或许你需要 Galera Cluster 或者 MySQL Fabric 之类的
msg7086
2016-11-21 11:57:28 +08:00
双主复制, Galera 。然而容灾还是需要手工备份,因为万一有人 drop 了数据库,除了备份谁都救不了你。
ixinshang
2016-11-21 12:04:38 +08:00
最近也在纠结这个问题
Powered
2016-11-21 12:48:06 +08:00
容灾的核心思想就是冗余

就像 @czb 说的,用主主。
noahzh
2016-11-21 13:21:28 +08:00
楼上都没有说到重点,都是知其然而不知其所以然, mysql 同步要使用半同步,版本最好选用 5.7 ,开启 gtid ,理论上是可以保证数据一致性的,实际中极端情况可能丢失一个事物的数据。
Powered
2016-11-21 13:29:56 +08:00
@noahzh
微微一笑…
主主同步,一个主提供服务,另一个主做冗余不提供服务
这样是以资源换取一致性。
建议你百度一下五八的服务器架构,再来装。
noahzh
2016-11-21 17:21:40 +08:00
@Powered 是不是主主,没有意义, slave 关闭 read_only 就可以,这根本不是问题。
你的主主,只能两台机器。
现在 mysql 高可用都是使用 gtid , 是可以 n 台( n>=2).
你不了解 mysql 同步机制,更不了解 gtid ,双主和一种一从,在只在主写的情况下是没有任何区别的。
做技术还是要深入了解的。
medivh
2016-11-21 17:45:20 +08:00
5.5, 5.6 同步模式开启 semi-sync 就行了,基本上保证不会丢数据了。
如果能启用 GTID 那连 indoor-transaction 都能救回来了

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/322019

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX