Skip to content

gtid_next

xiaoboluo768 edited this page Jun 14, 2020 · 2 revisions
  • 在GTID复制架构中,用于指定如何获取GTID号
    • 该变量有如下有效值,该变量要生效需要依赖于gtid_mode=on,如果gtid_mode为OFF,则设置此变量不起作用
      • AUTOMATIC:使用下一个自动生成的全局事务ID。
      • ANONYMOUS:事务不具有全局标识符,仅由binlog file和binlog pos标识(在MySQL 5.7版本中,该类型事务在binlog中多了一个Anonymous_gtid_log_event来标记匿名事务,在这个Event中使用了SET @@SESSION.GTID_NEXT= 'ANONYMOUS'语句)
      • UUID中的全局事务ID:NUMBER格式。即,手工指定一个GTID号,手工指定GTID常用语在复制发生错误时,手工跳过发生错误的事务GTID(手工指定后,通过执行begin;commit;语句来提交一个空事务使其GTID号增长到指定的GTID位置),手工指定的事务号提交或回滚之后,需要把该变量的值再次修改回AUTOMATIC,并重新启动复制
    • 会话变量,动态变量,枚举类型,有效值为:AUTOMATIC、ANONYMOUS、手工指定一个GTID,默认值为AUTOMATIC
    • 注意:
      • 在MySQL 5.7.5 之前的版本中(5.6.x 在 MySQL 5.6.20 之前的版本中),当该变量值不为AUTOMATIC时,drop temporary table或者drop table与drop temporary table的组合使用场景会失败,这目前是一个BUG(#17620053)
      • 在5.7.1版本或5.6.20版本中,在该变量不为AUTOMATIC时,无法执行CHANGE MASTER TO, START SLAVE, STOP SLAVE, REPAIR TABLE, OPTIMIZE TABLE, ANALYZE TABLE, CHECK TABLE, CREATE SERVER, ALTER SERVER, DROP SERVER, CACHE INDEX, LOAD INDEX INTO CACHE, FLUSH, or RESET这些语句,这是一个BUG (#16062608, #16715809, #69045) (#16062608)

上一篇:relay_log | 下一篇:slave_load_tmpdir

Clone this wiki locally