GTID相关变量
1. 相关变量
GTID_NEXT:
SESSION级别变量,表示下一个将被使用的GTID。
-- AUTOMATIC: 使用自动产生的下一个GTID。
-- ANONYMOUS: 事务没有GTID, 只使用 file and position 作为标识。
-- UUID:NUMBER:GTID in UUID:NUMBER format.
GTID_MODE:
Log 是否使用GTID或使用anonymous。anonymous transaction用binlog file 和position来标识事务。
-- OFF:新的和复制事务都使用anonymous。
-- OFF_PERMISSIVE:新的事务都使用anonymous,而复制事务可以使用GTID或anonymous。
-- ON_PERMISSIVE:复制事务都使用anonymous,而新事务可以使用GTID或anonymous。
-- ON: 新的和复制事务都使用GTID
GTID_EXECUTED:
包含已经在该实例上执行过的事务。使用 SHOW MASTER STATUS 和SHOW SLAVE STATUS,其中Executed_Gtid_Set会显示GTID_EXECUTED里的GTIDs。
GTID_PURGED:
已经被删除了binlog的事务,它是GTID_EXECUTED的子集。
GTID_OWNED:
表示正在执行的事务的GTID以及其对应的线程ID。
如果GDIT_OWNED是全局变量,它包含所有当前服务器上正在使用的GTIDs和使用它们的线程IDs。这个变量主要用于多线程从服务器复制,从而可以查看一个事务是否已经被另一个线程处理。这个线程会拥有所处理事务的ownership。@@global.grid_owned会显示出GTID和它的owner。当事务处理完成,线程会释放ownership. 如果GDIT_OWNED是session变量,它包含一个seesion正在使用的GTID。这个变量对测试和debug会很有帮助。
2. 相关命令
3. MySQL的XID
MySQL Binlog 文件由 event 组成,event 有不同的类型,而XID_EVENT 表示一个事务的提交操作。xid为8字节的内存变量,仅保证在单个binlog文件唯一,用于实现binlog与redolog的二阶段提交。
参考: