Mysql主从复制(GTIT)方式

GTID:

GTID (Global Transaction ID),也就是全局事务 ID, 其保证为 每一个在 master 主上提交的事务在复制集群中可以生成一 个唯一的 ID;

基于 GTID 的复制是从 MySQL5.6 开始支持的一种新的复制方 式,此方式与传统基于 binlog 日志的方式存在很大的差异, 在原来的基于日志的复制中,slave 从服务器连接到 master主服务器并告诉主服务器要从哪个二进制日志的偏移量开 始执行增量同步,这时我们如果指定的日志偏移量不对,这 与可能造成主从数据的不一致,而基于 GTID 的复制会避免。在基于 GTID 的复制中,首先从服务器会告诉主服务器已经 在从服务器执行完了哪些事务的 GTID 值,然后主库会有把 所有没有在从库上执行的事务,发送到从库上进行执行,并 且使用 GTID 的复制可以保证同一个事务只在指定的从库上 执行一次,这样可以避免由于偏移量的问题造成数据不一致。

实现步骤: 主库操作

Binlog日志还是需要开启的;
修改主库配置文件my.cnf		 #需要重启		
[mysqld]
server‐id = 101				
log‐bin = mysql‐bin
gtid‐mode = ON				
enforce-gtid-consistency = ON
#在线开启					
set global enforce_gtid_consistency=ON;
set global gtid_mode='ON';
#查看开启状态		
show variables like '%gtid%';

show variables like "%gtid%";

MyAnswer博客

show master status; 上面生效后,数据库有更新插入删除操作, Executed_Gtid_Set字段才会有值;

MyAnswer博客


实现步骤: 从库操作

#从库开启GTID   如果从库之前配置过主从,需要清除相关信息   reset slave;
server-id = 102
gtid-mode = ON		
enforce-gtid-consistency = ON
#设置相关信息				
CHANGE MASTER TO
MASTER_HOST='192.168.230.101',MASTER_USER='repl',MASTE
R_PASSWORD='123456',MASTER_AUTO_POSITION=1;
	
start slave;		

不用关系日志位置,gtid会自己寻找位置进行同步;不会重复;

MyAnswer博客
请先登录后发表评论
  • 最新评论
  • 总共0条评论