RESET MASTER和RESET SLAVE使用场景和说明

转载 2018年04月16日 14:52:49
【前言】在配置主从的时候经常会用到这两个语句,刚开始的时候还不清楚这两个语句的使用特性和使用场景。 经过测试整理了以下文档,希望能对大家有所帮助; ###【一】RESET MASTER参数 功能说明:删除所有的binglog日志文件,并将日志索引文件清空,重新开始所有新的日志文件。用于第一次进行搭建主从库时,进行主库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文件。 测试如下:

未删除前

[root@mysql01 mysql]# pwd
/data/mysql

[root@mysql01 mysql]# ls

mysql> show master status\G;
*************************** 1\. row ***************************
            File: <span style="color:#ff0000;">mysql-bin.000025
</span>        Position: <span style="color:#ff0000;">107
</span>    Binlog_Do_DB:
Binlog_Ignore_DB:
1 row in set (0.01 sec)

当前有25个binlong日志,且Position的位置为107

运行RESET MASTER

mysql> reset master;
Query OK, 0 rows affected (0.03 sec)

mysql> show master status\G;
*************************** 1\. row ***************************
            File: mysql-bin.000001
        Position: 107
        Binlog_Do_DB:
Binlog_Ignore_DB:
1 row in set (0.00 sec)

显示所有的binlog已经被删除掉,且binlog从000001 开始记录

注:当数据库要清理binlog文件的时候,可以通过操作系统进行删除,也可以运行reset master进行删除。但是如果当前是主数据库,且主从数据库正常的时候,千万不能用这种方式删除。

【使用场景】第一次搭建主从数据库时,用于主库的初始化binglog操作;

【二】RESET SLAVE

功能说明:用于删除SLAVE数据库的relaylog日志文件,并重新启用新的relaylog文件;

reset slave 将使slave 忘记主从复制关系的位置信息。该语句将被用于干净的启动, 它删除master.info文件和relay-log.info 文件以及所有的relay log 文件并重新启用一个新的relaylog文件。

使用reset slave之前必须使用stop slave 命令将复制进程停止。

登录从数据库,未删除前

mysql> show slave status\G;
*************************** 1\. row ***************************
               Slave_IO_State: Connecting to master
                  Master_Host: 192.168.47.167
                  Master_User: server
                  Master_Port: 3306
                Connect_Retry: 60
              Master_Log_File: mysql-bin.000019
          Read_Master_Log_Pos: 12992
              Relay_Log_File: mysql02-relay-bin.000004
                Relay_Log_Pos: 4
        Relay_Master_Log_File: mysql-bin.000019

当前relaylog为0004;

删除后

mysql> stop slave;                
先停止slave
Query OK, 0 rows affected (0.01 sec)

mysql> reset slave;               
Query OK, 0 rows affected (0.04 sec)

mysql> show slave status\G;
*************************** 1\. row **************************
               Slave_IO_State:
                  Master_Host: 192.168.47.167
                  Master_User: server
                  Master_Port: 3306
                Connect_Retry: 60
              Master_Log_File:
          Read_Master_Log_Pos: 4
           Relay_Log_File: mysql02-relay-bin.000001
                Relay_Log_Pos: 4

image

RESET SLAVE将使SLAVE忘记主从复制关系的位置信息。该语句将被用于干净的启动, 它删除master.info文件和relay-log.info 文件以及所有的relay log 文件并重新启用一个新的relaylog文件。

使用场景:当原来的主从关系被破坏之后,从库经过重新初始化后直接连接会报 ERROR 1201的错误,运行reset slave后,重新配置主从连接就可以了;

mysql> CHANGE MASTER TO MASTER_HOST='192.168.0.167',MASTER_USER='test',MASTER_PASSWORD='test', MASTER_LOG_FILE='mysql-bin.000001',MASTER_LOG_POS=176658;

ERROR 1201 (HY000): Could not initialize master info structure; more error messages can be found in the MySQL error log

总结:如果是需要删除mysql binlog和relaylog文件的时候,那么通过操作系统的删除或者PURGE命令都可以,但是涉及到mysql主从配置的时候便需要使用RESET MASTER和RESET SLAVE解决问题;

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

本文作者:JOHN,某上市公司DBA,业余时间专注于数据库的技术管理,从管理的角度去运用技术。

技术博客:猎人笔记 数据库技术群:367875324 (请备注数据库类型)

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

转自:https://blog.csdn.net/yabingshi_tech/article/details/50736735

MySQL RESET MASTER与RESET SLAVE

RESET MASTER 删除所有index file 中记录的所有binlog 文件,将日志索引文件清空,创建一个新的日志文件,这个命令通常仅仅用于第一次用于搭建主从关系的时的主库, 注意 ...
  • zyz511919766
  • zyz511919766
  • 2015-10-22 17:24:47
  • 6902

重置mysql主从同步:reset master和reset slave

重置mysql主从同步(MySQL Reset Master-Slave Replication)     在mysql主从同步的过程中,可能会因为各种原因出现主库与从库不同步的情况,网上虽然有...
  • slovyz
  • slovyz
  • 2014-08-29 16:09:01
  • 3047

MySQL的reset slave与reset slave all

reset slave是各版本Mysql都有的功能,在stop slave之后使用。主要做: 删除master.info和relay-log.info文件;删除所有的relay log(包括...
  • u013728926
  • u013728926
  • 2014-02-21 16:41:40
  • 2775

Mysql传统复制空库搭建过程中reset slave以及reset slave all对复制的影响

Mysql传统复制空库搭建过程中reset slave以及reset slave all对复制的影响 主库信息 从库信息 操作过程 主库上操作 从库上操作 主库上查看 解决方法 思...
  • wukong_666
  • wukong_666
  • 2017-05-17 11:57:59
  • 706

RESET MASTER 和RESET SLAVE区别

RESET MASTER 删除所有index file 中记录的所有binlog 文件,将日志索引文件清空,创建一个新的日志文件,这个命令通常仅仅用于第一次用于搭建主从关系的时的主库, 注意 ...
  • jerry____wang
  • jerry____wang
  • 2016-11-11 10:49:38
  • 425

RESET MASTER和RESET SLAVE使用场景和说明,以及清除主从同步关系

mysql主从复制中,需要将从库提升为主库,需要取消其从库角色,这可通过执行RESET SLAVE ALL清除从库的同步复制信息、包括连接信息和二进制文件名、位置。从库上执行这个命令后,使用show ...
  • wei763328075qq
  • wei763328075qq
  • 2017-09-20 21:43:04
  • 121

如何干净的清除Slave同步信息

mysql> show master status; +------------------+-----------+--------------+------------------+-------...
  • heizistudio
  • heizistudio
  • 2013-10-24 09:45:06
  • 9806

MySQL主从配置中RESET SLAVE和RESET MASTER的区别详解

RESET SLAVE和RESET MASTER的区别 RESET SLAVE的语法如下: RESET SLAVE [ALL] [channel_option] channel_option: ...
  • HG_Panda
  • HG_Panda
  • 2017-06-12 11:56:48
  • 180

MySQL RESET MASTER与RESET SLAVE和RESET SLAVE ALL

RESET MASTER  删除所有index file 中记录的所有binlog 文件,将日志索引文件清空,创建一个新的日志文件,这个命令通常仅仅用于第一次用于搭建主从关系的时的主库。 注意...
  • anzhen0429
  • anzhen0429
  • 2017-09-18 21:16:50
  • 414

移动主分支节点 reset master branch to here(节点上右键)弹出选项:soft,mixed,hard

http://blog.sina.com.cn/s/blog_936739790102v3nk.html
  • ysmz4
  • ysmz4
  • 2016-02-16 15:53:02
  • 801
收藏助手
不良信息举报
您举报文章:RESET MASTER和RESET SLAVE使用场景和说明
举报原因:
原因补充:

(最多只允许输入30个字)