该版本为mysql5.7
GTID也叫全局事务ID,GTID=server-uuid:transaction_id,其中server-uuid每个数据库不一样,存放在数据目录下的auto.cnf文件里。GTID可以更方便的实现主从间的failover,不需要寻找position和binlog
但是因为GTID复制时针对事务来说的,一个事务只对应一个GTID,所以需注意:
1、不能使用create table table_name select * from table_name;
2、在一个事务中既包含事务表的操作又包含非事务表
3、不支持create temporary table or drop temporary table语句操作
4、使用GTID复制从库跳过错误时不支持sql_slave_skip_counter参数的语句。
搭建gtid主从复制:
主库参数设置:gtid_mode=on、enforce_gtid_consistency=on、log_bin=on、binlog_format=row
从库参数配置:gtid_mode=on、enforce_gtid_consistency=on、log_slave_updates=1(5.7可以关闭该参数使用gtid_executed这个表)但建议从库中开启。
gtid_executed_compression_period:控制gtid_executed表的压缩,默认为1000(表压缩在执行完1000个事务后开始)
MySQL5.7.6开始,gtid_mode支持动态修改,拥有4种模式,只能逐级修改:off-不支持gtid事务;off_permissive-新的事务是匿名的,同时允许复制的事务可以是GTID也可以是匿名的;on_permissive-新的事务使用GTID,同时允许复制的事务可以是GTID也可以是匿名的;on-支持GTID的事务
配置主从:change master to master_auto_position=1,master_host=‘192.168.10.11’,master_user=‘bak’,master_password=‘bak123’;
从库通过执行show slave status可以查看接收的gtid和从库当前执行的gtid
实验:GTID与传统主从复制之间的切换
环境介绍:主为192.168.56.11,从库为192.168.56.12
1、gtid切换到传统复制:
(1)stop slave;停止主从复制
(2)调整主从复制模式:change master to master_auto_position=0,master_host=‘192.168.56.11’,master_user=‘bak’,master_password=‘bak123’,master_log_file=‘mysql-binlog.000011’,master_log_pos=‘1231’;
(3)开启复制功能:start slave;
(4)调整主从库的GTID模式为off,需逐级调整on_permissive–off_permissive–off
(5)将gtid_mode=off和enforce_gtid_consistency=off写入到主从各自的配置文件中,以便下次重启生效
2、传统复制切换到GTID模式:
(1)主从库上均修改参数enforce_gtid_consistency=warn,确保error log中没有告警信息,如果有则需要先修复
(2)主从库上均修改参数enforce_gtid_consistency=on,保证GTID的一致性
(3)主从库上均修改参数gtid_mode=on_permissive
(4)确定从库的参数Ongoing_anonymous_transaction_count是否为0,如果是0则没有等待的事务,则可以进行下一步操作
(5)主从库上均修改参数gtid_mode=on
(6)将主从复制停止:stop slave;
(7)从库执行:change master to master_auto_position=1;
(8)开启主从复制:start slave;
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。
墨天轮个人数说知识点合集
JiekeXu
436次阅读
2025-04-01 15:56:03
MySQL数据库当前和历史事务分析
听见风的声音
425次阅读
2025-04-01 08:47:17
MySQL 生产实践-Update 二级索引导致的性能问题排查
chengang
387次阅读
2025-03-28 16:28:31
MySQL 9.3 正式 GA,我却大失所望,新特性亮点与隐忧并存?
JiekeXu
353次阅读
2025-04-15 23:49:58
【活动】分享你的压箱底干货文档,三篇解锁进阶奖励!
墨天轮编辑部
352次阅读
2025-04-17 17:02:24
3月“墨力原创作者计划”获奖名单公布
墨天轮编辑部
328次阅读
2025-04-15 14:48:05
MySQL 30 周年庆!MySQL 8.4 认证免费考!这次是认真的。。。
严少安
316次阅读
2025-04-25 15:30:58
云和恩墨杨明翰:安全生产系列之MySQL高危操作
墨天轮编辑部
307次阅读
2025-03-27 16:45:26
openHalo问世,全球首款基于PostgreSQL兼容MySQL协议的国产开源数据库
严少安
294次阅读
2025-04-07 12:14:29
记录MySQL数据库的一些奇怪的迁移需求!
陈举超
198次阅读
2025-04-15 15:27:53