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的二阶段提交。

 

 

参考:

基于GTID复制实现的工作原理

MySQL的XID是什么

posted @ 2023-01-04 15:19  codercg  阅读(43)  评论(0编辑  收藏  举报