回答
GTID,全称为 Global Transaction ID(全局事务ID),是一个唯一标识已提交事务的编号,它是全局唯一的。GTID 是在 MySQL 5.6版本引入的特性,主要用于简化主从复制的配置和管理,提高复制的可靠性。
一、GTID 构成
GTID 由 server_uuid 和 transaction_id 组成。其中 server_uuid 是数据库启动时自动生成,确保每台机器的server_uuid 唯一。transaction_id 是事务提交时由系统顺序分配的递增的序列号,用于标识在该服务器上提交的事务。
二、GTID 作用
- 简化主从复制
主从复制时,GTID 方案使用 master_auto_position=1代替了原先基于 binlog 和 position 配置,后者需要 DBA 手动处理日志文件和位置,这容易出错,而且难以自动化。而 GTID 方案,只需要在从库指定要从哪个 GTID 开始复制。
gtid_mode=ON
enforce_gtid_consistency=ON
log_slave_updates=ON
gtid_mode=on
enforce_gtid_consistency=on
log_slave_updates=1
//并在从库执行 change master to
CHANGE MASTER TO MASTER_HOST='master_host', MASTER_PORT=3306, MASTER_USER='replication_user', MASTER_PASSWORD='password', MASTER_AUTO_POSITION=1;