一、GTID概述
GTID是MySQL5.6新增的特性,GTID(Global Transaction Identifier)全称为全局事务标示符,用以数据库实例事务唯一标识,其组成主要是source_id和transaction_id, 即GTID = source_id:transaction_id。其中source_id是数据库启动自动生成的数据库实例唯一标识,保存在auto.cnf中,而transaction_id则是事务执行的序列号。
二、GTID作用
- 支持GTID后,备库启动时不再需要通过位点信息从主库来拉取binlog,而是根据备库本身已执行和拉取的gtid去主库查找第一个未执行的GTID,从此GTID位置开始拉取binlog;
- 复制安全性更高,一个事务在每个实例上只执行一次;
- 故障切换简单,可通过设置MASTER_AUTO_POSITION=1,而非master_log_file和master_log_pos来建立主从关系;
- 可根据GTID确定事务最早提交的实例。
三、 5.7版GTID新特性
- gtid_mode可以动态设置,支持gtid模式和非gtid模式之间的复制;
- 增加了gtid_executed表。
四、gtid_mode
-
MySQL5.7(>= 5.7.6) gtid_mode支持动态修改,gtid_mode取值可