GTID和传统模式复制之间的切换
5.7.6开始可以在线切换
gtid-mode的几种状态说明: off :不产生gtid,基于binlog+position,slave也不能接受gtid的日志;
off_permissive:不产生gtid,但做为slave可以识别gtid事务也可以识别非gtid事务;
on_permissive:
产生gtid事务
,slave可以处理gtid事务和非gtid事务;
on:
产生gtid事务
,slave只接受gtid事务。
传统--->GTID
1.所有的Server执行 set @@global.enforce_gtid_consistency = warn;
特别注意: 这一步是关建的一步使用不能出现警告。
2.所有的server上执行 set @@global.enforce_gtid_consistency = on;
3.所有的Server上执行(要执行完) set @@global.gtid_mode = off_permissive;
set @@global.gtid_mode=on_permissive;
#产生gtid的日志,这个步骤号称是不关心任何节点,但从
管理上推荐在slave上先执行,然后再去master上执行。
4.传统的binlog复制完成确认 show status like 'ongoing_anonymous_transaction_count';
需要所有的节点都确认为0. 所有的节点也可以执行一下: flush logs;
用于切换一下日志。
5. 所有的节点启用gtid_mode set @@global.gtid_mode=on;
6.配置文件修改 gtid_mode=on enforce_gtid_consistency=on
7.启用gtid的自动查找节点复制 stop slave for channel 'master-3306101';
change master to master_auto_position=1 for channel 'master-3306101';
start slave for channel 'master-3306101'
GTID--->传统 就是上面的反向过程 1.停止复制 stop slave for channel 'master-3306101';
show slave status\G;
查看
Exec_Master_Log_Pos
的位置 change master to master_host='10.20.30.101',master_user='repl',master_password='repl4slave',master_port=3306,
master_auto_position=0,master_log_file='mysql-bin.000008',master_log_pos=83942 for channel 'master-3306101';
start slave for channel 'master-3306101'
2.主库先更改日志格式,然后从库更改 set @@global.gtid_mode=on_permissive;
set @@global.gtid_mode=off_permissive;
3. select @@global.gtid_owned;
要为空才正常
4.动态修改参数 set @@global.gtid_mode=off;
set @@global.enforce_gtid_consistency = off;
5.my.cnf修改
推荐阅读
- 急于表达——往往欲速则不达
- 第三节|第三节 快乐和幸福(12)
- 20170612时间和注意力开销记录
- 第326天
- 2.6|2.6 Photoshop操作步骤的撤消和重做 [Ps教程]
- 对称加密和非对称加密的区别
- 眼光要放高远
- 樱花雨
- 前任
- 2020-04-07vue中Axios的封装和API接口的管理