广告
返回顶部
首页 > 资讯 > 数据库 >MySQL GTID 主从复制的原理及配置
  • 367
分享到

MySQL GTID 主从复制的原理及配置

2024-04-02 19:04:59 367人浏览 独家记忆
摘要

    GTID是一个基于原始Mysql服务器生成的一个已经被成功执行的全局事务ID,它由服务器ID以及事务ID组合而成。这个全局事务ID不仅仅在原始服务器器上唯一,在所有存在主从关系

    GTID是一个基于原始Mysql服务器生成的一个已经被成功执行的全局事务ID,它由服务器ID以及事务ID组合而成。这个全局事务ID不仅仅在原始服务器器上唯一,在所有存在主从关系 的mysql服务器上也是唯一的。正是因为这样一个特性使得mysql的主从复制变得更加简单,以及数据库一致性更可靠。本文主要描述了快速配置一个基于GTID的主从复制架构,供大家参考。


一、GTID的概念

1、全局事务标识:global transaction identifiers。

2、GTID是一个事务一一对应,并且全局唯一ID。

3、一个GTID在一个服务器上只执行一次,避免重复执行导致数据混乱或者主从不一致。

4、GTID用来代替传统复制方法,不再使用MASTER_LOG_FILE+MASTER_LOG_POS开启复制。而是使用MASTER_AUTO_POSTION=1的方式开始复制。

5、MySQL-5.6.5开始支持的,MySQL-5.6.10后开始完善。

6、在传统的slave端,binlog是不用开启的,但是在GTID中slave端的binlog是必须开启的,目的是记录执行过的GTID(强制)。


二、GTID的组成

GTID = source_id:transaction_id

source_id,用于鉴别原服务器,即mysql服务器唯一的的server_uuid,由于GTID会传递到slave,所以也可以理解为源ID。 

transaction_id,为当前服务器上已提交事务的一个序列号,通常从1开始自增长的序列,一个数值对应一个事务。         

示例:      3E11FA47-71CA-11E1-9E33-C80AA9429562:23

前面的一串为服务器的server_uuid,即3E11FA47-71CA-11E1-9E33-C80AA9429562,后面的23为transaction_id


三、GTID的优势

1、更简单的实现failover,不用以前那样在需要找log_file和log_pos。 

2、更简单的搭建主从复制。 

3、比传统的复制更加安全。 

4、GTID是连续的没有空洞的,保证数据的一致性,零丢失。



四、GTID的工作原理

1、当一个事务在主库端执行并提交时,产生GTID,一同记录到binlog日志中。

2、binlog传输到slave,并存储到slave的relaylog后,读取这个GTID的这个值设置gtid_next变量,即告诉Slave,下一个要执行的GTID值。

3、sql线程从relay log中获取GTID,然后对比slave端的binlog是否有该GTID。

4、如果有记录,说明该GTID的事务已经执行,slave会忽略。

5、如果没有记录,slave就会执行该GTID事务,并记录该GTID到自身的binlog,   在读取执行事务前会先检查其他session持有该GTID,确保不被重复执行。

6、在解析过程中会判断是否有主键,如果没有就用二级索引,如果没有就用全部扫描。



五、配置GTID

对于GTID的配置,主要修改/etc/my.cnf配置文件中与GTID特性相关的几个重要参数(建议使用mysql-5.6.5以上版本),如下:

1、主: 

[mysqld]

server_id=1               

gtid_mode=on                 #开启gtid模式

enforce_gtid_consistency=on  #强制gtid一致性,开启后对于特定create table不被支持

log_bin=master-binlog

log-slave-updates=1    

binlog_fORMat=row            #强烈建议,其他格式可能造成数据不一致

skip_slave_start=1            


2、从: 

[mysqld]

server_id=1 

gtid_mode=on                 

enforce_gtid_consistency=on  

log_bin=master-binlog

log-slave-updates=1    

binlog_format=row           

skip_slave_start=1            



六、配置基于GTID的复制

1、新配置的mysql服务器 

在主服务器上执行以下操作:

> grant replication slave on *.* to 'rep'@'192.168.1.%' identified by '123';


对于新配置的mysql服务器,按本文第五点描述配置参数文件后,在slave端执行以下操作 

> CHANGE MASTER TO  

->  MASTER_HOST='192.168.1.135',        

->  MASTER_USER='rep',        

->  MASTER_PASSWord='123',        

->  MASTER_PORT=3306,        

->  MASTER_AUTO_POSITION = 1;

Query OK, 0 rows affected, 2 warnings (0.01 sec) 


> start slave;

 Query OK, 0 rows affected (0.01 sec) 


> show slave status \G;    #查看是否正常同步




2、已运行经典复制mysql服务器转向GTID复制 

(1)按本文第五点描述配置参数文件; 

(2)所有服务器设置global.read_only参数,等待主从服务器同步完毕;        

> SET @@global.read_only = ON; 


(3)依次重启主从服务器; 

(4)使用change master 更新主从配置;        

> CHANGE MASTER TO  

->  MASTER_HOST='192.168.1.135',        

->  MASTER_USER='rep',        

->  MASTER_PASSWORD='123',        

->  MASTER_PORT=3306,        

->  MASTER_AUTO_POSITION = 1;

Query OK, 0 rows affected, 2 warnings (0.01 sec) 


> start slave;

 Query OK, 0 rows affected (0.01 sec) 


> show slave status \G;





您可能感兴趣的文档:

--结束END--

本文标题: MySQL GTID 主从复制的原理及配置

本文链接: https://www.lsjlt.com/news/43128.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

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

下载Word文档
猜你喜欢
  • MySQL GTID 主从复制的原理及配置
        GTID是一个基于原始mysql服务器生成的一个已经被成功执行的全局事务ID,它由服务器ID以及事务ID组合而成。这个全局事务ID不仅仅在原始服务器器上唯一,在所有存在主从关系 ...
    99+
    2022-10-18
  • MySQL主从复制的配置及原理
    -----------------------------------------------------------mysql 5.5   环境用的数据库可的多实例----------...
    99+
    2022-10-18
  • MySql主从复制实现原理及配置
    数据库读写分离对于大型系统或者访问量很高的互联网应用来说,是必不可少的一个重要功能。对于MySQL来说,标准的读写分离是主从模式,一个写节点Master后面跟着多个读节点,读节点的数量取决于系统的压力,通常是1-3个...
    99+
    2022-05-18
    MySql 主从复制
  • MySQL 主从复制的原理和配置
    工作原理图: 主从复制的原理: 分为同步复制和异步复制,实际复制架构中大部分为异步复制。 复制的基本过程如下: 1).Slave上面的IO进程连接上Master,并请求从指定日志文件的指...
    99+
    2022-05-26
    MySQL 主从复制 配置
  • MySQL5.7.21开启Gtid配置主从复制
    mysql5.7.21开启Gtid配置主从复制 一、环境: mysql 主库master:10.0.0.101 172.168.1.101mysql 从库slave:10.0.0.103 172.168....
    99+
    2022-10-18
  • Redis replication主从复制原理及配置
    本文主要介绍Redis replication 主从复制原理和配置及基本操作 等 主要参考官方文档: https://redis.io/topics/replication ...
    99+
    2022-10-18
  • mysql之 MySQL 主从基于 GTID 复制原理概述
    一、 什么是GTID ( Global transaction identifiers ): MySQL-5.6.2开始支持,MySQL-5.6.10后完善,GTID 分成两部分,一部分是服务的UUid...
    99+
    2022-10-18
  • MySQL 主从复制及原理
    1.主从复制配置a. 环境:CentOS7.4,IP地址分别是主库:192.168.11.146,从库:192.168.11.238,主库版本应低于或等于从库版本,这里用的都是MySQL 8.0.13b.主...
    99+
    2022-10-18
  • 配置mysql5.6.x GTID主从复制方法
    下文给大家带来关于配置mysql5.6.x GTID主从复制方法,感兴趣的话就一起来看看这篇文章吧,相信看完配置mysql5.6.x GTID主从复制方法对大家多少有点帮助吧。本文环境:   主库...
    99+
    2022-10-18
  • 怎么理解mysql GTID主从复制
    本篇内容介绍了“怎么理解mysql GTID主从复制”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成! 一、...
    99+
    2022-10-19
  • MySQL的主从复制介绍及配置
    1.MySQL主从复制介绍    MySQL数据库支持单向、双向、链式级联、环状等不同业务场景的复制。在复制过程中,一台服务器充当主服务器(Master),接收来自用...
    99+
    2022-10-18
  • MySQL 主从复制原理及搭建
    一.主从复制的工作过程:二.MySQL复制类型基于SQL语句的复制基于行的复制混合复制三.实验环境  OS:CentOS 6.5 x64  master:192.168.0.134&nb...
    99+
    2022-10-18
  • 高性能Mysql主从架构的复制原理及配置示例
    这篇文章主要介绍了高性能Mysql主从架构的复制原理及配置示例,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。1 复制概述Mysql内建的复制...
    99+
    2022-10-18
  • 浅析mysql主从复制中的gtid
    gtid(Global Transaction ID)是对于一个已提交事务的编号,并且是一个全局唯一的编号。它的官方定义如下:gtid= source_id :transaction_id 每一个 gtid...
    99+
    2022-10-18
  • MySQL主从复制配置
    配置主数据库: my.cnf: server-id       = 1 log-bin  重启数据库 登录并查看: ...
    99+
    2022-10-18
  • mysql 主从复制原理
    主从形式mysql主从复制 灵活一主一从主主复制一主多从---扩展系统读取的性能,因为读是在从库读取的;多主一从---5.7开始支持联级复制--- 用途及条件 mysql主从复制用途实时...
    99+
    2022-10-18
  • mysql主从复制原理
    环境:3306 主库3307 从库1 设置server-id值并开启binlog功能参数编辑mysql的配置文件/data/3306/my.cnf[mysqld]server-id = 6   &...
    99+
    2022-10-18
  • 全面解读MySQL主从复制,从原理到安装配置
    为什么需要主从复制? 在业务复杂的系统中,有这么一个情景,有一句sql语句需要锁表,导致暂时不能使用读的服务,那么就很影响运行中的业务,使用主从复制,让主库负责写,从库负责读,这样,即使主库出现了锁表的情景,通过读从...
    99+
    2022-05-14
    MySQL 主从复制 MySQL 主从复制原理 MySQL 主从复制配置
  • MySQL 5.6 主从复制配置
    一、前言:为什么MySQL要做主从复制(读写分离)?通俗来讲,如果对数据库的读和写都在同一个数据库服务器中操作,业务系统性能会降低。为了提升业务系统性能,优化用户体验,可以通过做主从复制(读写分离)来减轻主...
    99+
    2022-10-18
  • MySQL配置SSL主从复制
    MySQL5.6 创建SSL文件方法 官方文档:https://dev.mysql.com/doc/refman/5.6/en/creating-ssl-files-using-openssl.html#c...
    99+
    2022-10-18
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作