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

最新文章

  1. css选择器的使用详解
  2. 探索 SharePoint 2013 Search功能
  3. hybrid app 简介
  4. [Flex] ButtonBar系列——flex3 ButtonBar属性labelPlacement标签相对于指定图标的方向
  5. 剑指offer-第二章算法之斐波拉契数列(青蛙跳台阶)
  6. 分布式数据库hbase详解
  7. MITK Tutorial(二)
  8. Node.js权威指南 (1) - Node.js介绍
  9. Mysql高级之游标
  10. 如何选择面向移动设备的html5开发框架
  11. input响应慢问题解决办法
  12. java自然语言理解demo,源码分享(基于欧拉蜜)
  13. Firefox配置文件夹详解
  14. Hibernate内容详解
  15. python入门(三)
  16. VirtualBox安装Archlinux并配置桌面环境
  17. 使用maven profile指定配置文件打包适用多环境
  18. 关于HashSet的equals和hashcode的重写
  19. Android---------------Activity的学习
  20. 每天一个linux命令(网络):【转载】ifconfig命令

热门文章

  1. electronr进行签名与公证
  2. oracle数据库修改密码有效期,解决ORA-28001: 口令已经失效
  3. 监控redis命令 - monitor
  4. golang中的viper示例
  5. React中条件渲染
  6. Day9 - Python基础9 socket基础、粘包
  7. linux编程fcntl获取和设置文件状态
  8. 不用输入ssh -i命令行即可携带pem文件快速登录的方法
  9. vs2010,vs2013,vs2015,vs2017, vs2019激活秘钥
  10. 用OC基于链表实现链队列