我的编程空间,编程开发者的网络收藏夹
学习永远不晚

mysql主从同步机制原理

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

mysql主从同步机制原理

本篇内容主要讲解“mysql主从同步机制原理”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“mysql主从同步机制原理”吧!

1、binlog+pos同步(默认为异步)

从服务器通过IO进程读取主库的binlog,写入到relay_log中,

从服务器通过sql running进程读取从库的relay_log,并写入到从库的bin_Log实现同步

我们生产一般使用row模式,因为有些函数在使用mix和state模式可能会报错。

2、半同步(5.5开始)

半同步就是就是用户向mysql写入数据,先写入到主库,然后生成binlog日志。主库等待从库来取binlog日志,如果从库超过10秒没有来获取binlog日志。主库自动转换为异步,以后用户写入数据生成binlog日志,等待用户自己来取,没有取到主库也不在管理。

介于异步复制和全同步复制之间,主库在执行完客户端提交的事务后不是立刻返回给客户端,而是等待至少一个从库接收到并写到relay log中才返回给客户端。相对于异步复制,半同步复制提高了数据的安全性,同时它也造成了一定程度的延迟,这个延迟最少是一个TCP/IP往返的时间。所以,半同步复制最好在低延时的网络中使用。

在没有指明的情况下,默认都是异步复制。

3、GTID同步(5.6.10开始)

使用UUID+事务ID作为全局事物标识,UUID为每台机器的标识符,事务ID记录最新的事务,不在使用binlog+pos开启复制。而是使用master_auto_postion=1的方式自动匹配GTID断点进行复制。

4、group replication(5.7.17开始)

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

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

半同步的开启方法和前提条件:

要想使用半同步复制,必须满足以下几个条件:

1. MySQL 5.5及以上版本

2. 变量have_dynamic_loading为YES

3. 异步复制已经存在

1、首先加载插件,主从分别安装插件

INSTALL PLUGIN rpl_semi_sync_master SONAME 'semisync_master.so';

INSTALL PLUGIN rpl_semi_sync_slave SONAME 'semisync_slave.so';

2、查看插件是否安装成功。

1、show plugins;

rpl_semi_sync_master       | ACTIVE   | REPLICATION        | semisync_master.so | GPL 

2、mysql> SELECT PLUGIN_NAME, PLUGIN_STATUS FROM INFORMATION_SCHEMA.PLUGINS  WHERE PLUGIN_NAME LIKE '%semi%';

+----------------------+---------------+
| PLUGIN_NAME          | PLUGIN_STATUS |
+----------------------+---------------+
| rpl_semi_sync_master | ACTIVE        |
+----------------------+---------------+
1 row in set (0.00 sec)

3、启动半同步复制(也可以写在配置文件中)

SET GLOBAL rpl_semi_sync_master_enabled = 1;

SET GLOBAL rpl_semi_sync_slave_enabled = 1;

4、重启从上的IO线程

mysql> STOP SLAVE IO_THREAD;

mysql> START SLAVE IO_THREAD;

5、检查半同步是否正确运行

mysql> show status like 'Rpl_semi_sync_master_status';

mysql> show status like 'Rpl_semi_sync_slave_status';

均显示为ON则正常启动。

到此,相信大家对“mysql主从同步机制原理”有了更深的了解,不妨来实际操作一番吧!这里是亿速云网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

mysql主从同步机制原理

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

mysql主从同步的原理

mysql 主从同步是一种数据复制技术,通过将主服务器数据同步到从服务器以实现一致性。同步过程涉及:1. 从服务器连接主服务器并请求二进制日志副本;2. 主服务器 i/o 线程将二进制日志更改发送到从服务器;3. 从服务器 sql 线程执行
mysql主从同步的原理
2024-08-01

Mysql 主从同步原理简析

在开始讲述原理的情况下,我们先来做个知识汇总,究竟什么是主从,为什么要搞主从,可以怎么实现主从,mysql主从同步的原理1、什么是主从其实主从这个概念非常简单主机就是我们平常主要用来读写的服务,我们称之为master(主人、主宰)从机就是主机进行的一个扩展,他
Mysql 主从同步原理简析
2016-01-10

一文详解MySQL主从同步原理

目录1. mysql主从同步实现方式2. MySQL主从同步的作用一主多从架构双主多从架构3. 主动同步的原理4. 主从同步延迟问题主从同步延迟的原因有哪些?主从同步延迟的解决方案?5. 如何提升主从同步性能从库开启多线程复制修改同步模式,
2022-08-16

MySQL主从半同步复制

目录一、半同步复制1.半同步复制概念2.配置半同步1)主库操作2)从库操作3)额外参数一、半同步复制1.半同步复制概念从MYSQL5.5开始,支持半自动复制。之前版本的MySQL Replication都是异步(asynchronous)的,主库在执行完一些事
MySQL主从半同步复制
2022-01-18

mysql主从同步

#!/bin/bash . /etc/rc.d/init.d/functions if [ $# -ne 0 ];then    echo "Usage:sh `basename $0`"    exit 1 fi #MASTER VARIABLES #bin
mysql主从同步
2017-01-13

MySQL 主从同步

一、概述     原理图如下:     功能: BinLog:二进制文件,存储MasterDB(主数据库)中修改数据的内容,存储内容的格式有Statement,Row,Mixed。 Relay Log:功能作用与Binlog一样,不同点在于当日志内的内
MySQL 主从同步
2018-11-12

kafka主从同步原理是什么

Kafka主从同步原理是指在Kafka集群中,一个或多个Kafka broker(主节点)将数据复制到其他Kafka broker(从节点)的过程。Kafka主从同步原理如下:1. 主节点接收到生产者发送的消息,并将其写入本地的日志文件(称
2023-10-12

编程热搜

目录