reset master、reset slave与reset slave all 使用区别

一、reset slave命令进行两个动作:

1.清除 master.info,relay-log.info文件(记录),

2.删除所有的relay log,包括还没有应用完的日志,创建一个新的relaylog文件.

我们来看第一个动作,也就是清楚master.info文件和relay-log.info文件,需要注意的是,新版本的mysql中,这两个文件已经不存在了,而是存储在mysql数据库的slave_master_info表和slave_relay_log_info表中,我们在从节点停止复制前后来查看这两个表里面的内容,如下:

host填复制的主机ip

master_log_name(binlog日志)是用来记录对数据库进行有更新的事件;

stop slave;是指停止复制,执行后上面两个再查询则为空

上面的例子说明,停止复制前后,这两个表中对应记录被删除了,也就是说名reset slave操作确实会删除相关的记录。

reset slave 必须在stop slave命令后面使用,否则无法直接对slave进行重置,执行会报错;

执行reset slave再执行show slave status仍然可以查看到复制信息;

此时我们进行start slave的命令,在Second Behind Master等于0的情况下,依旧可以搭建主从复制,如下:

但是如果是执行reset slave all;则内存中的数据也会被清除掉,运行show slave status就输出为空了;

结论:

第一、reset slave命令和reset slave all命令会删除所有的relay log(包括还没有应用完的日志),创建一个新的relay log文件;

第二、使用reset slave命令,那么所有的连接信息仍然保留在内存中,包括主库地址、端口、用户、密码等。这样可以直接运行start slave命令而不必重新输入change master to命令,而运行show slave status也仍和没有运行reset slave一样,有正常的输出。但如果使用reset slave all命令,那么这些内存中的数据也会被清除掉,运行show slave status就输出为空了。

第三、reset slave和reset slave all命令会将系统mysql数据库的slave_master_info表和slave_relay_log_info表中对应的复制记录清除。

二、reset master命令

还是一样,我们先来说说这个命令的结果:

1、清理所有的binlog文件,创建一个新的文件,起始值从1开始。

2、GTID环境中,reset master会清理掉gtid_executed的值

执行reset master后会清除binlog文件,同时gitd也被清理了;

总结一下:

1、reset master操作有两个功能,一个是把binary log进行清空,并生成新的编号为000001的binary log

2、reset master会清空主库的GTID编号,在搭建主从的时候可以使用,但是要慎用(如果你的二进制日志还有需要的话)。

  • 12
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值