1. 常用的binlog日志操作命令
1. 查看bin-log是否开启
show variables like 'log_%';2. 查看所有binlog日志列表
show master logs;3.查看master状态
show master status;4. 重置(清空)所有binlog日志
reset master;
2. 查看binlog日志内容
1、使用mysqlbinlog自带查看命令法
mysqlbinlog binlog.000020 2 若要看到具体的sql需要加 -v
mysqlbinlog binlog.000020 -vshow binlog events in 'binlog.000020';3. 查看当前拥有的binlog
show binary logs;4. 删除binlog
purge binary logs before 'xxx'
3. relaylog
show relaylog events in 'docker-relay-bin-group_replication_applier.000033';
4. reset master,reset slave , reset slave all 的区别
1. reset master1.1 删除所有binlog,并重头开始生成一个新的binlog1.2 清空binlog索引文件1.3 在gtid,会同时清理变量gtid_executed,gtid_purged,mysql.gtid_executed的内容2. reset slave2.1 删除所有relay log,并从头开始生成一个新的relay log2.2 清空relay log索引文件2.3 清空mysql.slave_relay_log_info,mysql.slave_worker_info表的内容2.4 清空mysql.slave_master_info表空的binlog位置信息,但会保留链接信息PS:在gtid中,因为有gtid_executed,所以复制可以继续,不会中断,但如果是基于位置点的复制,则i/o线程需要从现有的binlog日志重新拉取数据,则 主从中断3. reset slave all3.1 会直接情况mysql.slave_slave_info 中的所有内容,包括链接信息,这时要恢复主从的话,只能通过change master to 命令3.2 执行时必须执行 stop salve;3.3 不会清除与gtid相关的任何信息
5. 跳过指定事务
1. 传统复制stop slave;set global sql_slave_skip_counter=1;start slave;2. gtid复制gtid中跳过事务的本质是注入空事务show slave status\G;set session gtid_next='xxx:xxx';begin;commit;set session gtid_next='automatic';start slave;