前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >MySql数据库主从同步的三种模式讲解

MySql数据库主从同步的三种模式讲解

原创
作者头像
Blue_007
修改2023-11-04 21:31:57
7340
修改2023-11-04 21:31:57
举报
文章被收录于专栏:代码生涯代码生涯

mysql主从同步分三种模式:异步复制半同步复制全同步复制,今天记录下三种同步模式的概念、优势、劣势。

? 概念

  • master--主数据库
  • slave--从数据库
  • binlog--二进制日志文件
  • relaylog--中继日志
  • ack--确认应答(确认消息、确认机制)

中继日志存在于 slave(从数据库) 中,它是从 master(主数据库)二进制日志 复制过来的,并不是自己的数据库变化产生的,有点接力的感觉,称为中继日志,即relay log。

? 异步复制

看下图:

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

slave 会启动两个线程,IO ThreadSQL Thread

  • IO Thread 负责从 master 拉取 binlog 日志,并写入 relay 中继日志
  • SQL Thread 负责将 relay 中继日志中的变更进行重放,更新数据来达到跟 master 保持数据一致的目的

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

异步复制的优势是性能好,缺点是数据的安全性比较差

在某一刻主从之间的数据差异可能较大,主机挂掉之后从机接管,可能会丢失一部分数据。


? 半同步复制

看下图:

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

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

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

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


? 全同步复制

全同步复制半同步复制 的区别是,全同步复制必须收到所有 slave(从数据库)ack,才会提交事务。

master(主数据库) 的事务提交依赖于后面所有的 slave(从数据库),这样一来性能就会明显得下降,除非是对所有 slave(从数据库) 数据一致性要求非常高的场景,否则我们一般不采用这种策略。

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

? 最后

如果您对本文有任何疑问或需要帮助,请在评论区留言,我会尽力解答。如果本文对您有帮助,请给个赞以示支持,非常感谢!?

我正在参与2023腾讯技术创作特训营第三期有奖征文,组队打卡瓜分大奖!

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • ? 概念
  • ? 异步复制
  • ? 半同步复制
  • ? 全同步复制
  • ? 最后
相关产品与服务
云数据库 MySQL
腾讯云数据库 MySQL(TencentDB for MySQL)为用户提供安全可靠,性能卓越、易于维护的企业级云数据库服务。其具备6大企业级特性,包括企业级定制内核、企业级高可用、企业级高可靠、企业级安全、企业级扩展以及企业级智能运维。通过使用腾讯云数据库 MySQL,可实现分钟级别的数据库部署、弹性扩展以及全自动化的运维管理,不仅经济实惠,而且稳定可靠,易于运维。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
http://www.vxiaotou.com