Mysql基于GTID主从集群配置

1、 什么是GTID模式?

1、全局唯一,一个事务对应一个GTID
2、替代传统的binlog+pos复制;使用master_auto_position=1自动匹配GTID断点进行复制
3、MySQL5.6开始支持
4、在传统的主从复制中,slave端不用开启binlog;但是在GTID主从复制中,必须开启binlog
5、slave端在接受master的binlog时,会校验GTID值,则slave需要存储硬盘比之前更大!
6、为了保证主从数据的一致性,多线程同时执行一个GTID

Master_UUID:序列号举例:ceb0ca3d-8366-11e8-ad2b-000c298b7c9a:1-5ceb0ca3d-8366-11e8-ad2b-000c298b7c9a其实就是master的uuid值;1-5是序列号,每次一个事务完成都会自增1,也就是说下一次为1-6。

2、 工作原理

1、master更新数据时,会在事务前产生GTID,一同记录到binlog日志中。
2、slave端的i/o 线程将变更的binlog,写入到本地的relay log中。
3、sql线程从relay log中获取GTID,然后对比slave端的binlog是否有记录。
4、如果有记录,说明该GTID的事务已经执行,slave会忽略。
5、如果没有记录,slave就会从relay log中执行该GTID的事务,并记录到binlog。
6、在解析过程中会判断是否有主键,如果没有就用二级索引,如果没有就用全部扫描

3、 配置方法

第一步:确认主从2个MySQL都打开binlog,并且把之前的主从配置都清空
show variables like ‘log_bin’;
Mysql基于GTID主从集群配置_第1张图片
第二步:2个MYSQL vim /etc/my.cnf
增加
gtid-mode=ON
enforce-gtid-consistency=ON
重启服务
第三步:
主从数据人工处理保持一致
主库:SHOW MASTER STATU获取取binlog文件名跟位置
从库
CHANGE MASTER TO
MASTER_HOST=‘192.168.31.82’,
MASTER_USER=‘nasen’,
MASTER_PASSWORD=‘pass’,
MASTER_LOG_FILE=‘binlog.000006’,
MASTER_LOG_POS=856;
start slave;

在这里插入图片描述
在这里插入图片描述

4、 测试验证

随时查看从库数据是否一致!
数据一致代表验证成功!

你可能感兴趣的:(GTID主从模式,数据库技术,mysql,数据库,运维开发)