mysql 使用主从复制的话, 如果某条更新写入了主库,而没有写入从库, 此时主库挂掉了,丢失了更新怎么办呢, 假如主库无法恢复

2020-04-19 15:17:26 +08:00
 jdz
3864 次点击
所在节点    程序员
19 条回复
m939594960
2020-04-19 15:18:58 +08:00
主从复制有同步异步不同的模式的吧,如果不能接受这种情况的话就只能用同步的模式了
wps353
2020-04-19 15:26:38 +08:00
可以了解一下 MySQL Group Replication,这个就不会出现丢数据的情况了。
blackeeper
2020-04-19 15:41:28 +08:00
主从复制有三种同步的方式:异步,半同步,全同步。如果你的数据很重要,那么配置全同步,这样数据写到从库才算完成了写操作。
Jooooooooo
2020-04-19 15:43:47 +08:00
这个数据就丢了
lewis89
2020-04-19 16:40:29 +08:00
@Jooooooooo #4 看 binlog 吧,主从复制貌似是根据 binlog 来的,如果 binlog 能恢复,从库应该没问题
johnj
2020-04-19 17:13:14 +08:00
有 binlog 的话 就有办法
ackoly
2020-04-19 17:46:46 +08:00
只有一个存储就没这个问题,可以参考阿里云的 polardb,看有没同类产品。
qW7bo2FbzbC0
2020-04-19 22:24:03 +08:00
都在说 binlog,楼主的意思应该是事务指还没写入到从库 relay log,主库彻底挂掉什么都无法回复的情况
qW7bo2FbzbC0
2020-04-19 22:25:44 +08:00
即使使用半同步,好像还是会有几率丢数据吧。目前最方便的不丢数据当然是 MGR ?
qW7bo2FbzbC0
2020-04-19 22:26:09 +08:00
当然 > 方案
Kenyore
2020-04-19 23:22:12 +08:00
我觉得其实方案没有完美的,只有合适的。怎么办主要还是看你们的业务需求对丢数据的容忍度。而且恢复数据不一定从数据库层面的。还可以从硬盘层面和日志层面
luckyrayyy
2020-04-19 23:24:15 +08:00
想要严格一致,就得忍受效率大降,可以等从库写入完成之后,主库才返回写入成功。
nicebird
2020-04-20 00:02:27 +08:00
异步就是这样呗,不过如果写入成功了,最终靠 binlog 能够实现最终的一致性。
xizismile
2020-04-20 00:17:56 +08:00
配置为半同步,只要有一个 slave 同步成功,master 才会返回成功
horkooo
2020-04-20 08:21:10 +08:00
方法很多,可以配置多个主库
Flourite
2020-04-20 10:40:18 +08:00
用半同步
DoUSeeMe
2020-04-20 11:16:55 +08:00
阿里的数据库容灾就是配置了 3 个主库
a1609
2020-04-20 13:59:57 +08:00
@m939594960 您好,请问还在沈阳吗?我公司招能独立开发的人,不会人浮于事
m939594960
2020-04-20 15:15:36 +08:00
@a1609 #18 抱歉!已经找到工作了

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

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

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

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

© 2021 V2EX