1、什么是GTID
GTID(Global Transaction ID),全局事务标识符
2、GTID的格式与储存
1、单个GTID
GTID用冒号分隔的一对坐标表示,例如:8eed0f5b-6f9b-11e9-94a9-005056a57a4e:23
前半部分表示主库的server_uuid后面一部分是主库上按提交事务的顺序确定的序列号,提交的事务序号从1 开始。
GTID = server_uuid :transaction_id
GTID集是包括一个或多个单个GTID或GTID范围的集合。源自同一服务器的一系列GTID可以折叠为 单个表达式,例如: 8eed0f5b-6f9b-11e9-94a9-005056a57a4e:1-321
源自同一服务器的多个单GTID或GTID范围可以同时包含在由冒号分隔的单个表达式中,例 如: 8eed0f5b-6f9b-11e9-94a9-005056a57a4e:1-3:11:47-49
3、开启GTID
vim /var/my.cnf
[mysqld]
gtid-mod=on
enforce-gtid-consistency=true
然后重启服务
systemctl restart mysqld
4、DDL语句DML语句查看GTID
一条DDL语句产生一个gtid
查看gitd集:show master status;
基于GTID查看binlog文件
show binlog events in 'mysql-bin.000013';
具备GTID 后截取查看某些事务
--include-gtid='GTID' 相关binlog文件 用空格空开
5、数据库恢复
首先确定binlog的gtid的起始与结束
其次,binlog使用gtid截取日志
确定起始范围:7-13
文件:mysql-bin.000013 mysql-bin.000014 mysql-bin.000015
截取日志时添加--skip-gtids
最后使用binlog恢复
source /opt/gtid.sql