GTID介绍
从MySQL5.6开始增加GTID这个特性,Global Transaction ID,全局事务ID,用来强化主从数据库的一致性,故障恢复,以及容错能力,来替代传统的人工的主从复制;
有了GTID,在进行主备切换的时候,slave们可以自动在新的master上找到复制位置(position),大大简化了复杂复制集群的维护工作,减少了人为设置position的风险,减少了数据不一致性的风险;
**GTID的组成:**
GTID=server_uuid:transaction_id
server_uuid指的是MySQL的uuid,在第一次启动MySQL时生成,保存在auto.cnf中;
transaction_id是事务的id,是一个从1开始的自增计数,表示在这个主库上执行的第几个事务;
比如:
b6af5b5c-666f-11e9-bed3-000c29b85ea6:1,第一个事务
b6af5b5c-666f-11e9-bed3-000c29b85ea6:1-5,第1到第5个事务
**GTID复制的工作原理**
1. master在执行更新操作时,会在事务执行时生成一个GTID,然后把GTID一起记录到binlog中;
2. slave的IO线程去读取master的binlog变更,写入自己的relay-log中;
3. slave从relay-log中取出GTID,比较自己的binlog中是否有次GTID;
4. 如果slave的binlog中有此GTID,则说明该事务已经执行过,不再执行;
5. 如果slave的binlog中没有次GTID,则执行该事务,并记录到自己的binlog中;
**GTID复制的优点**
1. 传统的主从复制,需要手动指定binlog和position,这样比较麻烦,也很容易出错,在master的写操作频繁时,也很难确定position;在GTID复制下,只需要指定MASTER_AUTO_POSITION=1,MySQL就会通过内部机制,自动找点同步;
简单来说,就是简化了复制,因为position是实时更新的,不方便手工指定,所以,GTID可以自动找到position进行同步;
2. GTID支持基于库的多线程复制,在MySQL5.6以前,slave的复制是单线程的,只能一个事件一个事件进行;所以,我们可以把一个表放在一个库里,一个库一个线程,这样就可以实现多线程复制;但是,当只有一个库的时候,多线程复制是没有用的;
**GTID相关变量**
gtid_mode=on:开启GTID;
gtid_executed:当前实例上执行过的事务集合;
GTID介绍的更多相关文章
- MariaDB · 版本特性 · MariaDB 的 GTID 介绍
本文来自阿里的数据库内核月报,写的很详细,主要是关于mariadb开启gtid之后做主从的方法. 原文连接:http://mysql.taobao.org/monthly/2016/02/08/
- GTID复制报错处理:Last_Error: Error 'Can't drop database 'test'; database doesn't exist' on query
创建GTID主从连接: mysql, master_user; 报错显示: Slave_IO_Running: Yes Slave_SQL_Running: No Last_Error: Error ...
- MySQL 5.7 Replication 相关新功能说明
背景: MySQL5.7在主从复制上面相对之前版本多了一些新特性,包括多源复制.基于组提交的并行复制.在线修改Replication Filter.GTID增强.半同步复制增强等.因为都是和复制相关, ...
- Mysql基于GTIDs的复制
通过GTIDs[global transaction identifiers],可以标识每一个事务,并且可以在其一旦提交追踪并应用于任何一个Slave上:这样 就不需要像BinaryLog复制依赖Lo ...
- Linux系统——MHA-Atlas-MySQL高可用集群
Linux系统——MHA-Atlas-MySQL高可用集群 MHA MHA介绍MHA(Master High Availability)目前在MySQL高可用方面是一个相对成熟的解决方案,是一套优秀的 ...
- MySQL 5.7 Replication 相关新功能说明 (转)
背景: MySQL5.7在主从复制上面相对之前版本多了一些新特性,包括多源复制.基于组提交的并行复制.在线修改Replication Filter.GTID增强.半同步复制增强等.因为都是和复制相关, ...
- __MySQL 5.7 Replication 相关新功能说明
背景: MySQL5.7在主从复制上面相对之前版本多了一些新特性,包括多源复制.基于组提交的并行复制.在线修改Replication Filter.GTID增强.半同步复制增强等.因为都是和复制相 ...
- MySQL-16-主从复制进阶
延时从库 介绍 延时从库: 是我们人为配置的一种特殊从库,人为配置从库和主库延时N小时 为什么要有延时从库 数据库故障 物理损坏,普通的主从复制非常擅长解决物理损坏 逻辑损坏,普通主从复制没办法解决逻 ...
- MySQL-13-日志管理
常用日志参数 经常用到的有错误.快慢查询.二进制等日志 错误日志 1 作用 记录启动\关闭\日常运行过程中,状态信息,警告,错误,排查MySQL运行过程的故障 2 错误日志配置 默认就是开启的: /数 ...
随机推荐
- Kafka SASL/SCRAM+ACL实现动态创建用户及权限控制
kafka系列文章 第一章 linux单机安装kafka 第二章 kafka--集群安裝部署(自带zookeeper) 第三章 Kafka SASL/SCRAM+ACL实现动态创建用户及权限控制 Ka ...
- windows创建p12格式的ios开发证书的流程
现在做ios开发,原生的开发已经不是第一选择,现在有很多不同的H5开发框架,在性能上都不输原生开发,而UI方便却能做得比原生更炫,比如CSS得灵活度肯定是比原生开发出来得应用更灵活的. 我们在开发IO ...
- SOHO 程序员
SOHO 程序员:从事程序开发.维护的家居办公人员. 一.自由程序员 SOHO程序员代表一种自由.弹性而新型的工作方式.SOHO,代表一种新经济.新概念. 是一些热爱软件开发的一族. SOHO程序员 ...
- 牛客网多校第5场 F take 【思维+数学期望】
题目:戳这里 思路来源:视频讲解 题意:有n个箱子按1...n标号,每个箱子有大小为di的钻石概率为pi,我们初始有个大小为0的钻石,从1到n按顺序打开箱子,遇到比手中大的箱子就换,求交换次数的数学期 ...
- List遍历以及剔除指定数据
一.list三种遍历方式 1.for循环 List<String> list = new ArrayList<String>(); list.add("A" ...
- 问题记录 java.lang.NoClassDefFoundError: org/dom4j/DocumentException
客户端调webservice服务产生以下错误 AxisFault faultCode: {http://schemas.xmlsoap.org/soap/envelope/}Server.genera ...
- CSS 设置多行文本省略号 ...
CSS 设置多行文本省略号 ... .box{ display: -webkit-box; overflow: hidden; text-overflow: ellipsis; word-wrap: ...
- Stack Overflow & Segment Fault
Stack Overflow & Segment Fault https://stackoverflow.com/ https://stackoverflow.com/users/593446 ...
- 微信小程序 API
微信小程序 API https://developers.weixin.qq.com/miniprogram/dev/component/cover-view.html demo https://de ...
- html tag filter in js
html tag filter in js const html = `可当天预订,必须21时15分之前下单,要求必须<font color=green><b>60</b ...