传统复制与 GTID复制的切换知识点
By admin
- One minute read - 104 words在5.6以后,可以通过命令动态修改.
注意有些命令是需要主从都要执行,有些命令是只在slave执行。
gtid_mode 的几种状态值说明: OFF: 不产生 GTID, 基于 binlog+position,也不能接受GTID的日志。默认值 OFF_PERMISSIVE: 不生产 GTID,但作为slave可以识别GTID事务也可以识别非GTID事务 ON_PERMISSIVE: 产生GTID,slave可以处理GTID事务和非GTID事务 ON: 产生GTID事务,slave只接受GTID事务
实验一:将传统复制切换到GTID复制
启用GTID:
set @@global.enforce_gtid_consitency=warn;
set @@global.enforce_gtid_consistency=on;
set @@global.gtid_mode=OFF_PERMISSIVE; #不产生gtid,但可以处理gtid
set @@global.gtid_mode=ON_PERMISSIVE; #产生gtid,也可以处理gtid
show status like ‘ONGOING_ANONYMOUS_TRANSACTION_COUNT’;
set @@global.gtid_ode=on;
stop slave [for channel ‘channel’];change master to master_auto_postion=1; start slave;(slave)
更改复制到自动识别GTID环境
3.修改配置文件 my.cnf
gtid-mode=on
enforce_gtid_consistency=on
实验二:将GTID复制切换到传统复制
禁用GTID:
1.停止复制,禁止master_auto_position
stop slave [for channel ‘channel_name’];
change master to mster_auto_position=1,master_log_file=file,MASTER_LOG_POS=position [FOR CHANNEL ‘channel’];
start slave [for channel ‘channel_name’];
其中master_log_pos为’Exec_Master_Log_Pos’的值
2.更改日志格式
set @@global.gtid_mode=ON_PERMISSIVE;
set @@global.gtid_mode=OFF_PERMISSIVE;
select @@global.gtid_owned;
set @@global.gtid_mode=off;
set global enforce_gtid_consistency=off;
3.修改配置文件 my.cnf
[mysqld]
gtid-mode=off
enforce_gtid_consistency=off
———————–
显示日志的event
show binlog event in ‘mysql-bin.000005’;
如果设置修改了复制方式
set @@global.gtid_mode = OFF_PERMISSIVE;
禁止产生GTID,会产生一个新的二进制文件,可以在此命令的前后分别执行 show master status 查看此影响。