GTID模式下的binlog管理
配置
server_uuid介绍:
mysql> select @@server_uuid;
+--------------------------------------+
| @@server_uuid |
+--------------------------------------+
| 09a8c1af-6e45-11ea-a381-000c29248f69 |
+--------------------------------------+
在第一次初始化,启动数据库时,自动生成的。存在/data/3306/data/auto.cnf文件中。
一旦被删除,被修改,下次重启重置。
ID值的介绍:
DDL ,DML :一个事件记录一个ID
DML :一个完整的事务,记录一个ID
开启方式
参数:
select @@gtid_mode;
select @@enforce_gtid_consistency;
基于GTID的binlog管理
# 查看GTID的信息
mysql> show master status ;
# 查看GTID的事件信息
mysql> show binlog events in 'mysql-bin.000007';
mysql-bin.000007 | 154 | 219 | SET @@SESSION.GTID_NEXT= '09a8c1af-6e45-11ea-a381-000c29248f69:1'
mysql-bin.000007 | 219 | 335 | create database binlog charset
# 基于GTID方式截取恢复数据
mysqlbinlog --skip-gtids --include-gtids='09a8c1af-6e45-11ea-a381-000c29248f69:1-3' /data/3306/binlog/mysql-bin.000007 >/tmp/gtid1.sql
注意: 开启了GTID模式的数据库,会自动检测GTID幂等性。会自动跳过已有的GTID的操作。
需要添加 --skip-gtids ,在截取日志时,抹掉已有的GTID信息
# 截取时排除某些GTID方法
mysqlbinlog --skip-gtids --include-gtids='09a8c1af-6e45-11ea-a381-000c29248f69:1-10' --exclude-gtids='09a8c1af-6e45-11ea-a381-000c29248f69:4','09a8c1af-6e45-11ea-a381-000c29248f69:7' /data/3306/binlog/mysql-bin.000007 >/tmp/gtid2.sql
# 多文件截取
mysqlbinlog --include-gtids='09a8c1af-6e45-11ea-a381-000c29248f69:1-100' /data/3306/binlog/mysql-bin.000003 /data/3306/binlog/mysql-bin.000004 /data/3306/binlog/mysql-bin.000005>/tmp/gtid.sql
# -d 过滤库的binlog