gtid运维

gtid跳过一个事务

show slave status 中的Executed_Gtid_Set.

show global variables like '%gtid%'中的gtid_executed

show master status 中的Executed_Gtid_Set

构建一个空事务如下

stop slave;
set gtid_next='XXXXXXX';
begin;
commint;
set gtid_next='automatic';
start slave;

构建多个空事务

stop slave;
set gtid_next='XXXXXXX';
begin;
commint;
set gtid_next='XXXXXXX';
begin;
commint;
set gtid_next='automatic';
start slave;

mysqldump导出行为的改变

mysqldump导出数据的时候受set-gtid-purged=Auto的影响。

mysqldump --single-transaction --master-data=2 -R -E --all-databases
SET @MYSQLDUMP_TEMP_LOG_BIN =@@SESSION.SQL_LOG_BIN
SET @@SESSION.SQL_LOG_BIN=0;
--
-- GTID state at the beginning of the backup
-- SET @@GLOBAL.GTID_PURGED='xxxxxxxxxx';

如果使用这个备份做主从,不需要生成新的GTID和binary log Event。所以SQL_LOG_BIN必须设置为0

搭建GTID AUTO_POSITION MODE模式的主从

##主从执行
enforce_gtid_consistency=on
gtid_mode=on
server_id=3306
binlog_format=row
##主执行
create user 'repl'@'%' identified by '123456';
grant replcation slave on *.* to 'repl'@'%';
mysqldump --single-transaction --master-data=2 --all-databases>test.sql
## 从执行
reset master;
reset slave;
set sql_log_bin=0;
source test.sql;
head -n 40 test.sql
set @@GLOBAL.GTID_PURGED='xxxx'
change master to master_host='',master_user='repl',master_password='',master_port=2206,master_auto_position=1;
start slave;

gtid_mode参数的含义

gtid_mode各个值得含义

OFF:生成得都是匿名事务,从库也只能应用匿名事务

OFF_PERMISSIVE:生成匿名事务,从库可以应用匿名事务和gtid事务

ON_PERMISSIVE:生成GTID事务,从库可以应用匿名事务和gtid事务

ON:生成GTID事务,从库也只能应用GTID事务

online开始gtid

## master/slave
SET @@GLOBAL.ENFORCE_GTID_CONSISTENCY=WARN;
SET @@GLOBAL.ENFORCE_GTID_CONSISTENCY=ON;
SET @@GLOBAL.GTID_MODE=OFF_PERMISSIVE;
SET @@GLOBAL.GTID_MODE=ON_PERMISSIVE;
##确认没有匿名事务
SHOW GLOBAL STATUS LIKE '%Ongoing_anonymous_transaction_count%';
SET @@GLOBAL.GTID_MODE=ON;
STOP SLAVE;
CHANGE MASTER TO MASTER_AUTO_POSITION=1;
START SLAVE;

开启gtid得影响(设置master_auto_position=1)

删除原来所有得relay log,重新接受需要得event

只接受主库相应得gtid event 匿名事务不再接受

posted @ 2020-11-17 21:29  Cetus-Y  阅读(148)  评论(0编辑  收藏  举报