栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

mysql主从同步的三种模式

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

mysql主从同步的三种模式

mysql 主从同步三种模式:异步复制、半同步复制、全同步复制
今天我们就来看下这三种同步模式的优势和劣势

异步复制

异步复制是mysql 默认的同步方式
在master为slave开通账号密码、ip授权之后,slave 可以从master进行数据同步,主要依赖的是master的binlog日志

slave会启动两个线程,IO Thread 和 SQL Thread
IO Thread 负责从master拉取binlog 日志,并写入relay中继日志
SQL Thread 负责将relay中继日志中的变更进行重放,更新数据来达到跟master保持数据一致的目的

这个过程中,slave通过IO线程拉取binlog,master无需关注是否有slave需要同步,只做自己的事情,整个复制过程都是异步完成的,这个就是异步复制

异步复制的优势是性能好,缺点是数据的安全性比较差
在某一刻主从之间的数据差异可能较大,主机挂掉之后从机接管,可能会丢失一部分数据。

半同步复制

这里我们借用网友一张图

master更新操作写入binlog之后会主动通知slave,slave接收到之后写入relay log 即可应答,master只要收到至少一个ack应答,则会提交事务

可以发现,相比较于异步复制,半同步复制需要依赖至少一个slave将binlog写入relay log,在性能上有所降低,但是可以保证至少有一个从库跟master的数据是一致的,数据的安全性提高。

对于数据一致性要求高的场景,可以采用半同步复制的同步策略,比如主库挂掉时,准备接管的那一个从库,对数据的一致性要求很比较高。

半同步复制的优点是数据的安全性好,缺点是性能比异步复制稍低

全同步复制

全同步复制跟半同步复制的区别是,全同步复制必须收到所有从库的ack,才会提交事务。
主库的事务提交依赖于后面所有的从库,这样一来性能就会明显得下降
除非是对所有从库数据一致性要求非常高的场景,否则我们一般不采用这种策略

全同步复制的数据一致性最好,但是性能也是最差的

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/665912.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号