MySQL数据库:RESET MASTER、RESET SLAVE、MASTER_INFO、RELAY_LOG_INFO
RESET MASTER
删除所有index file中记录的所有binlog文件,将日志索引文件清空,创建一个新的日志文件,这个命令通常仅仅用于第一次用于搭建主从关系的时的主库
注意 ;reset master 不同于purge binary log的两处地方
1:reset master 将删除日志索引文件中记录的所有binlog文件,创建一个新的日志文件 起始值从000001 开始,然而purge binary log 命令并不会修改记录binlog的顺序的数值
2:reset master 不能用于有任何slave正在运行的主从关系的主库。因为在slave 运行时, reset master 命令不被支持,reset master 将master 的binlog从000001 开始记录,
slave记录的master log 则是reset master 时主库最新的binlog,从库会报错无法找的指定的binlog文件。
RESET SLAVE
reset slave 将使slave 忘记主从复制关系的位置信息。该语句将被用于干净的启动, 它删除master.info文件和relay-log.info 文件以及所有的relay log 文件并重新启用一个新的relaylog文件。
使用reset slave之前必须使用stop slave 命令将复制进程停止。
注:所有的relay log将被删除不管他们是否被SQL thread进程完全应用(这种情况发生于备库延迟以及在备库执行了stop slave 命令),存储复制链接信息的master.info文件将被立即清除,
如果SQL thread 正在复制临时表的过程中,执行了stop slave ,并且执行了reset slave,这些被复制的临时表将被删除。
RESET SLAVE ALL
在 5.6 版本中 reset slave 并不会清理存储于内存中的复制信息比如 master host, master port, master user, or master password,也就是说如果没有使用change master 命令做重新定向,执行start slave 还是会指向旧的master 上面。
当从库执行reset slave之后,将mysqld shutdown 复制参数将被重置。
relay-log-info
记录SQL线程读取Master binlog的位置,用于Slave 宕机后根据文件中记录的pos点恢复Sql线程
master-info
记录IO线程读取已经读取到的master binlog位置,用于slave宕机后IO线程根据文件中的POS点重新拉取binlog日志
sync_relay_log_info
执行多少个事务后将relay-log-info,sync一下文件刷新到磁盘
sync_master_info
如果下面两个sync参数设置较大,当宕机时:
sync_master_info较大将导致重复拉取binlog日志
sync_relay_log_info较大将导致重复执行binlog日志
参考:
https://www.aliyun.com/jiaocheng/1405382.html
https://yq.aliyun.com/articles/233178