0

0

Mysql主从三种复制模式是什么

WBOY

WBOY

发布时间:2023-05-28 08:49:26

|

2894人浏览过

|

来源于亿速云

转载

MySQL异步复制

mysql异步复制是主从复制过程中默认的复制模式。复制涉及到三个线程,包括主 i/o 线程、从 i/o 线程和从 sql 线程。因为是异步复制,所以master事务的提交,不需要经过slave的确认,即master i/o线程提交事务后,不需要等待slave i/o线程的回复确认,master并不保证binlog一定写入到了relay log中;而slave i/o把binlog写入relay log后,由slave sql线程异步执行应用到slave mysql中,slave i/o也不需要slave sql的回复确认,并不保证relay log日志完整写入到了mysql中。

Mysql主从三种复制模式是什么

半同步复制

为了弥补传统异步复制的缺陷,MySQL在5.5版本引入了半同步复制,这是对传统异步复制的改进。在master事务commit前,必须确保binlog日志已经写入slave 的relay log日志中,收到slave给master的响应后,才能进行事务的commit。尽管如此,relay log的后半部分仍然会以异步方式传递给sql线程执行。

Mysql主从三种复制模式是什么

组复制

基于传统异步复制和半同步复制的缺陷——数据的一致性问题无法保证,MySQL官方在5.7.17版本正式推出组复制(MySQL Group Replication,简称MGR)。

由若干个节点共同组成一个复制组,一个事务的提交,必须经过组内大多数节点(N / 2 + 1)决议并通过,才能得以提交。如上图所示,由3个节点组成一个复制组,Consensus层为一致性协议层,在事务提交过程中,发生组间通讯,由2个节点决议(certify)通过这个事务,事务才能够最终得以提交并响应。

引入组复制的主要目的在于解决传统的异步复制或半同步复制所带来的数据不一致问题。组复制依靠分布式一致性协议(Paxos协议的变体),实现了分布式下数据的最终一致性,提供了真正的数据高可用方案(是否真正高可用还有待商榷)。其提供的多写方案,给我们实现多活方案带来了希望。

MGR环境下,服务器数量必须是3台以上,并且是单数,实现2/n+1的算法。

Mysql主从三种复制模式是什么

一个复制组由若干个节点(数据库实例)组成,组内各个节点维护各自的数据副本(Share Nothing),通过一致性协议实现原子消息和全局有序消息,来实现组内实例数据的一致。

MGR的解决方案现在具备的特性

数据一致性保障:确保集群中大部分节点收到日志

Difeye-敏捷的轻量级PHP框架
Difeye-敏捷的轻量级PHP框架

Difeye是一款超轻量级PHP框架,主要特点有: Difeye是一款超轻量级PHP框架,主要特点有: ◆数据库连接做自动主从读写分离配置,适合单机和分布式站点部署; ◆支持Smarty模板机制,可灵活配置第三方缓存组件; ◆完全分离页面和动作,仿C#页面加载自动执行Page_Load入口函数; ◆支持mysql,mongodb等第三方数据库模块,支持读写分离,分布式部署; ◆增加后台管理开发示例

下载

多节点写入支持:多写模式下支持集群中的所有节点都可以写入(但是考虑1到高并发场景下,保证数据高度一致性,生产并没有选择多主写入,使用单主集群)

Fault Tolerance: 确保系统发生故障(包括脑裂)依然可用,双写对系统无影响

MGR的解决方案目前的影响

  • 仅支持InnoDB表,并且每张表一定要有一个主键,用于做write set的冲突检测;

  • 必须打开GTID特性,二进制日志格式必须设置为ROW,用于选主与write set

  • COMMIT可能会导致失败,类似于快照事务隔离级别的失败场景

  • 目前一个MGR集群最多支持9个节点

  • 不支持外键于save point特性,无法做全局间的约束检测与部分部分回滚

  • 二进制日志不支持binlog event checksum

相关专题

更多
菜鸟裹裹入口以及教程汇总
菜鸟裹裹入口以及教程汇总

本专题整合了菜鸟裹裹入口地址及教程分享,阅读专题下面的文章了解更多详细内容。

0

2026.01.22

Golang 性能分析与pprof调优实战
Golang 性能分析与pprof调优实战

本专题系统讲解 Golang 应用的性能分析与调优方法,重点覆盖 pprof 的使用方式,包括 CPU、内存、阻塞与 goroutine 分析,火焰图解读,常见性能瓶颈定位思路,以及在真实项目中进行针对性优化的实践技巧。通过案例讲解,帮助开发者掌握 用数据驱动的方式持续提升 Go 程序性能与稳定性。

9

2026.01.22

html编辑相关教程合集
html编辑相关教程合集

本专题整合了html编辑相关教程合集,阅读专题下面的文章了解更多详细内容。

56

2026.01.21

三角洲入口地址合集
三角洲入口地址合集

本专题整合了三角洲入口地址合集,阅读专题下面的文章了解更多详细内容。

51

2026.01.21

AO3中文版入口地址大全
AO3中文版入口地址大全

本专题整合了AO3中文版入口地址大全,阅读专题下面的的文章了解更多详细内容。

397

2026.01.21

妖精漫画入口地址合集
妖精漫画入口地址合集

本专题整合了妖精漫画入口地址合集,阅读专题下面的文章了解更多详细内容。

118

2026.01.21

java版本选择建议
java版本选择建议

本专题整合了java版本相关合集,阅读专题下面的文章了解更多详细内容。

3

2026.01.21

Java编译相关教程合集
Java编译相关教程合集

本专题整合了Java编译相关教程,阅读专题下面的文章了解更多详细内容。

16

2026.01.21

C++多线程相关合集
C++多线程相关合集

本专题整合了C++多线程相关教程,阅读专题下面的的文章了解更多详细内容。

11

2026.01.21

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
MySQL 教程
MySQL 教程

共48课时 | 1.9万人学习

MySQL 初学入门(mosh老师)
MySQL 初学入门(mosh老师)

共3课时 | 0.3万人学习

简单聊聊mysql8与网络通信
简单聊聊mysql8与网络通信

共1课时 | 805人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号