zoukankan      html  css  js  c++  java
  • 取消mysql主从复制关系

    mysql主从复制中,需要将主从复制关系清除,需要取消其从库角色。这可通过执行RESET SLAVE ALL清除从库的同步复制信息、包括连接信息和二进制文件名、位置。从库上执行这个命令后,使用show slave status将不会有输出。
    reset slave是各版本Mysql都有的功能,在stop slave之后使用。主要做:
    删除master.info和relay-log.info文件;
    删除所有的relay log(包括还没有应用完的日志),创建一个新的relay log文件;
    从Mysql 5.5开始,多了一个all参数。如果不加all参数,那么所有的连接信息仍然保留在内存中,包括主库地址、端口、用户、密码等。这样可以直接运行start slave命令而不必重新输入change master to命令,而运行show slave status也仍和没有运行reset slave一样,有正常的输出。但如果加了all参数,那么这些内存中的数据也会被清除掉,运行show slave status就输出为空了。
    mysql>stop slave;
    
    QueryOK, 0 rowsaffected (0,00 sec)
    
    mysql>reset slave all;
    
    QueryOK, 0 rowsaffected (0,04 sec)
    
    mysql> show slave statusG
    
    Emptyset (0,00 sec)
    
    
    此时真正实现了清除slave同步复制关系!
    --------------------------------------------------------------------------------
    【一】RESET MASTER
    功能说明:删除所有的binglog日志文件,并将日志索引文件清空,重新开始所有新的日志文件。用于第一次进行搭建主从库时,进行主库binlog初始化工作;
    测试如下:
    未删除前
    [root@mysql01 mysql]# pwd
    /usr/local/data/mysql
    [root@mysql01 mysql]# ls
    auto.cnf    client-cert.pem  ibdata1      ibtmp1                     localhost.localdomain.pid  mysql-bin.000002  mysql-bin.000005  mysqld_safe.pid     public_key.pem   sys
    ca-key.pem  client-key.pem   ib_logfile0  imove                      mysql                      mysql-bin.000003  mysql-bin.000006  performance_schema  server-cert.pem
    ca.pem      ib_buffer_pool   ib_logfile1  localhost.localdomain.err  mysql-bin.000001           mysql-bin.000004  mysql-bin.index   private_key.pem     server-key.pem
    [root@localhost bin]# ./mysql -uroot -p123456
    mysql> show master status;
    +------------------+----------+--------------+------------------+-------------------+
    | File             | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
    +------------------+----------+--------------+------------------+-------------------+
    | mysql-bin.000006 | 16663694 |              |                  |                   |
    +------------------+----------+--------------+------------------+-------------------+
    1 row in set (0.00 sec)
    mysql> 
    
    
    当前有6个binlong日志,且Position的位置为16663694
    运行RESET MASTER
    mysql> reset master;
    Query OK, 0 rows affected (0.03 sec)
    
    
    mysql> show master statusG;
    *************************** 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文件;
    测试如下:
    登录从数据库,未删除前
    mysql> show slave statusG;
    *************************** 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;
    先停止slave,运行RESET MASTER
    mysql> stop slave;        
    Query OK, 0 rows affected (0.01 sec)        
    mysql> reset slave;                
    Query OK, 0 rows affected (0.04 sec)
    mysql> show slave statusG;
    *************************** 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**
    
    RESET SLAVE将使SLAVE忘记主从复制关系的位置信息。该语句将被用于干净的启动, 它删除master.info文件和relay-log.info 文件以及所有的relay log 文件并重新启用一个新的relaylog文件。
    使用场景:当原来的主从关系被破坏之后,从库经过重新初始化后直接连接会报 ERROR 1201的错误,运行reset slave后,重新配置主从连接就可以了;

  • 相关阅读:
    设计模式6大原则依赖倒置原则
    HTML5开发HTML5入门
    设计模式6大原则迪米特法则
    设计模式6大原则接口隔离原则
    Android ROM开发ubuntu下编译CyanogenMod生成SDK
    设计模式6大原则单一职责原则
    Android杂谈修改Android系统内/system目录权限使其可读写
    [转]SMTP协议
    QQ发送邮件失败的解决办法
    开始→运行→命令集锦
  • 原文地址:https://www.cnblogs.com/duanlinxiao/p/12096054.html
Copyright © 2011-2022 走看看