当前位置:   article > 正文

高级DBA带你学习Mysql基于GTID主从集群配置实战_mysql8版本搭建gtid,从库是否开启binlog日志

mysql8版本搭建gtid,从库是否开启binlog日志

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’;
在这里插入图片描述
第二步: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、 测试验证

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

笔者简介
国内某一线知名软件公司企业认证在职员工:任JAVA高级研发工程师,大数据领域专家,数据库领域专家兼任高级DBA!10年软件开发经验!现任国内某大型软件公司大数据研发工程师、MySQL数据库DBA,软件架构师。直接参与设计国家级亿级别大数据项目!并维护真实企业级生产数据库300余个!紧急处理数据库生产事故上百起,挽回数据丢失所造成的灾难损失不计其数!并为某国家级大数据系统的技术方案(国家知识产权局颁布)专利权的第一专利发明人!

在这里插入图片描述

在这里插入图片描述

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/IT小白/article/detail/959246?site
推荐阅读
相关标签
  

闽ICP备14008679号