除了基于日志点的复制,mysql5.6版本之后还有基于GTID的复制方式:
GTID也就是全局事务id
GTID能保障每个在主上提交的事务在复制集群中可以生成一个唯一的id值
需要在主从数据库配置文件中同时加入如下配置:
gtid_mode:开启
enforce-gtid-consistency:强制gtid一致性(用于保障gtid启动后的事务安全)
log-slave-updates:mysql5.6版本中如果要使用gtid复制则一定要启动,mysql5.7版本中可以不启用
在整个复制集群中gtid是唯一的,mysql可以通过gtid判断哪些还没有同步到从上,所以使用master_auto_position=1代替master_log_file、master_log_pos(gtid复制链路和日志点复制的最大不同点)
(原来的日志点复制可以使用create table... select来建立表。而gtid只能先建立好表,再使用insert into插入到新的表中。所以gtid复制要保证没有如上操作,否则会引起异常)
具体配置参考日志点复制
转载于:https://blog.51cto.com/5660061/2390304