GTID (Golobal Transaction ID) 是对于一个已提交事务的唯一编号,并且是一个全局(主从复制)唯一的编号。

GTID 复制和传统复制的区别:在启动主从复制时,不需要指定 binlog 文件名和 postion 号,直接 auto 即可。MySQL 会自动读取最后一个 relay,获取到上次已经复制的 GTID 号,从此号码开始向后复制即可。在 MHA 高可用环境下,在主库无法 SSH 时,从库进行数据补偿更加便捷。eg:

change master to master_host='192.168.31.205' ,master_user='rep',master_password='Rep_123456',master_auto_position=1;

在 /etc/my.cnf 上额外增加下面配置参数

[mysqld]

gtid-mode=on                  # 启用gtid类型,否则就是普通的复制架构
enforce-gtid-consistency=true # 强制GTID的一致性
log-slave-updates=1 # slave更新是否记入日志

在主库创建了一个数据库,查看到 gtid 号



登录从库,查看现在执行到的 gtid 号

show binlog events in 'mysql-bin.000001';

总结

  • 在主从复制环境中,主库发生过的事务,在全局都是由唯一GTID记录的,更方便Failover
  • 从库 change master to 的时候不再需要 binlog 文件名和 position 号, 设置 MASTER_AUTO_POSITION=1 即可;
  • 在复制过程中,从库不再依赖 master.info 文件,而是直接读取最后一个 relaylog 的 GTID 号
  • mysqldump备份时,默认会将备份中包含的事务操作,以以下方式

    SET @@GLOBAL.GTID_PURGED='8c49d7ec-7e78-11e8-9638-000c29ca725d:1';

    告诉从库,我的备份中已经有以上事务,你就不用运行了,直接从下一个 GTID 开始请求 binlog 就行。

主从优化 -- 从库开启多线程MTS

基于组提交的并行复制(Enhanced Multi-threaded Slaves)worker线程并发执行 relay log 中主库提交的事务。

开启要求:

5.7以上的版本

必须开启GTID

binlog必须是row模式

# 在从库上添加配置 (/etc/my.cnf)
slave-parallel-type=LOGICAL_CLOCK
slave-parallel-workers=16 # cpu核心数作为标准
master_info_repository=TABLE
relay_log_info_repository=TABLE

MySQL 主从复制开启 GTID的更多相关文章

  1. MySQL主从复制之GTID模式介绍

    GreatSQL社区原创内容未经授权不得随意使用,转载请联系小编并注明来源. GTID概述 MySQL5.6 在原有主从复制的基础上增加了一个新的复制方式,即基于GTID的复制方式,它由UUID和事务 ...

  2. MysqL主从复制_模式之GTID复制

    基于GTID的复制是从Mysql5.6开始支持的一种新的复制方式,此方式与传统基于日志的方式存在很大的差异,在原来的基于日志的复制中,从服务器连接到主服务器并告诉主服务器要从哪个二进制日志的偏移量开始 ...

  3. 在线建立或重做mysql主从复制架构方法(传统模式和GTID模式)【转】

    mysql主从复制架构,是mysql数据库主要特色之一,绝大多数公司都有用到. 而GTID模式是基于事务的复制模式的意思,发展到现在也是越来越多人用. 以前很多文章,介绍搭建mysql主从复制架构,是 ...

  4. 基于GTID的MySQL主从复制#从原理到配置

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

  5. MYSQL主从复制搭建及切换操作(GTID与传统)

    结构如下: MYSQL主从复制方式有默认的复制方式异步复制,5.5版本之后半同步复制,5.6版本之后新增GTID复制,包括5.7版本的多源复制. MYSQL版本:5.7.20 操作系统版本:linux ...

  6. 基于GTID模式MySQL主从复制

    基于GTID模式MySQL主从复制 GTID复制原理:基于GTID的复制是MySQL 5.6后新增的复制方式GTID (global transaction identifier) 即全局事务ID, ...

  7. Linux下MySQL主从复制(GTID)+读写分离(ProxySQL)-实施笔记

    GTID概念: GTID( Global Transaction Identifier)全局事务标识.GTID 是 5.6 版本引入的一个有关于主从复制的重大改进,相对于之前版本基于 Binlog 文 ...

  8. 解决mysql开启GTID主从同步出现1236错误问题【转】

    最近遇到mysql开启gtid做复制时,从库出现1236错误,导致同步无法进行,本文就这问题记录下处理步骤,有关gtid知识在这里不做介绍,mysql版本为5.7.16. 一.错误原因分析 错误信息如 ...

  9. 解决mysql开启GTID主从同步出现1236错误问题

    解决mysql开启GTID主从同步出现1236错误问题     最近遇到mysql开启gtid做复制时,从库出现1236错误,导致同步无法进行,本文就这问题记录下处理步骤,有关gtid知识在这里不做介 ...

随机推荐

  1. vue小案例--简易评论区

    一.小案例(评论区) 1.流程 (1)分析静态页面.(vue项目创建参考https://www.cnblogs.com/l-y-h/p/11241503.html)(2)拆分静态页面,变成一个个组件. ...

  2. View和ViewGroup

    1.继承关系 2.组合关系 3.View 的绘制流程 3.1.创建R.attrs.styleable,申明需要用到的属性值,在使用时可以根据属性进行定义   3.2.extends View  ,依次 ...

  3. selinux disable

    临时关闭: [root@localhost ~]# getenforceEnforcing [root@localhost ~]# setenforce 0[root@localhost ~]# ge ...

  4. 详解 DNS 与 CoreDNS 的实现原理

    域名系统(Domain Name System)是整个互联网的电话簿,它能够将可被人理解的域名翻译成可被机器理解 IP 地址,使得互联网的使用者不再需要直接接触很难阅读和理解的 IP 地址. http ...

  5. Redis—简介与安装

    Redis 简介 Redis 安装 Redis 配置文件 # Redis默认不是以守护进程的方式运行,可以通过该配置项修改,使用yes启用守护进程.daemonize yes # 当Redis以守护进 ...

  6. android 圆角ImageView类,可设置弧度

    public class RoundImageView extends ImageView { private Paint paint; private int roundWidth = 50; pr ...

  7. 0. gitlab 一些常用知识

    Monitor 但是有反映  提交慢的情况时候.  可以查看一下队列 使用root账号 gitlab最多可以同时25个队列.  多了需要排队. 可以查看一下原因.

  8. 解决java poi导出excel2003不能超过65536行的问题

    java poi在导出数据到excel2003工作表中时一个工作表只能存储65536行数据,如果超过这个数据就会失败,excel2007并没有这个问题,但是为了兼容性我们通常都是导出到2003版本上的 ...

  9. Python程序中的线程操作-锁

    目录 一.同步锁 1.1 多个线程抢占资源的情况 1.1.1 对公共数据的操作 1.2 同步锁的引用 1.3 互斥锁与join的区别 二.死锁与递归锁 2.1 死锁 2.2 递归锁RLock 三.典型 ...

  10. UTF-8和BOM的一些说明

    BOM的含义 BOM即Byte Order Mark字节序标记.BOM是为UTF-16和UTF-32准备的,用户标记字节序(byte order).拿UTF-16来举例,其是以两个字节为编码单元,在解 ...