gtid_purged - xiaoboluo768/qianjinliangfang GitHub Wiki
- 该变量的值是记录所有已经从二进制日志中清除的事务集合(执行类似purge binary logs to 'mysql-bin.000007';语句时,01~06编号的binlog将被清理,同时这些binlog中的GTID集合将被更新到gtid_purged变量上,另外,使用备份工具备份时,因为备份工具并不会备份binlog,所以就把备份时show master status输出语句中看到的gtid集合当作清理binlog时的GTID集合位置处理,即你可以把备份工具获取的Gtid位置用于设置gtid_purged变量,因为这些GTID集合位置在利用备份恢复出来的实例的binlog中确实不存在,既然不存在,那就当作已经被清理处理)。
- 该GTID集合是gtid_executed表中记录的所有事务集合的一个子集
- 当服务器启动时,gtid_purged的全局值被初始化为一组GTID(但如果是一个从未清理过binlog的实例,这个变量可能一直为空)。有关清理二进制日志时如何循环迭代扫描这些日志中的GTID集合以更新到gtid_purged系统变量,详见binlog_gtid_simple_recovery系统变量解释部分
- 当执行RESET MASTER语句时,会清空该变量的值
- 该系统变量值可以动态更新,但只有该变量值为空串时才允许被更新(如果不为空串,需要先执行reset master语句重置),该变量为空串可能的原因有:可能之前从来没有启用过复制功能、可能之前复制并不是使用的GTID复制模式、可能从未在实例上清理过binlog。在MySQL 5.7.6之前,此变量只有在gtid_mode = ON时才可设置。在MySQL 5.7.6及更高版本中,无论gtid_mode的值如何,此变量都是可设置的
- 在MySQL 5.7.6及其之前的版本产生的binlog,有可能在mysqld重启之后重新计算gtid_purged系统变量时计算错误,可以使用系统变量binlog_gtid_simple_recovery=false来避免计算错误,在MySQL 5.7.7及其之后的版本无此问题,可以直接设置binlog_gtid_simple_recovery = TRUE(MySQL 5.7.7及更高版本中的默认设置),详见binlog_gtid_simple_recovery 系统变量解释部分
- 全局变量,动态变量,字符串类型
上一篇:slave_load_tmpdir | 下一篇:binlog_gtid_simple_recovery