1.概述
从MYSQL5.6 开始,mysql开始支持GTID复制。
基于日志点复制的缺点:
从那个二进制日志的偏移量进行增量同步,如果指定错误会造成遗漏或者重复,导致数据不一致。
基于GTID复制:
1.从服务器会告诉主服务器已执行的事务的GTID值。
2.主库会告诉从哪些GTID事务没有被执行。
同一个事务在指定的从库执行一次。
什么是GTID
GTID即全局事务ID,器保证为每一个在主上提交的事务在复制集群中可以生成一个唯一的ID.
GTID=source_id:transaction_id
source_id:是主库的server UUID,在数据目录的auto.cnf 文件中。
transaction_id: 从1开始的一个序列。
2.基于GTID复制的步骤
1.在主DB服务器上建立复制帐号。
在主库执行命令
create user repl@'192.168.31.%' identified by 'repl';
grant all privileges on *.* to repl@'192.168.31.%' identified by 'repl';
2.配置主数据库服务器
修改 /etc/my.cnf
log_bin =on
server_id=1001
gtid-mode=on
enforce_gtid_consistency:强制事务一致性,保证事务的安全
注意如果使用了基于事务点日志配置下面两种情况不能使用: