• MySQL主从修复


    MySQL主从故障修复


    测试库:
    192.168.1.2 主
    192.168.1.3 从


    192.168.1.4 主 4又是2的从库
    192.168.1.5 从


    有人修改了192.168.1.2和192.168.1.3的数据库参数后,重启数据库。
    忘记了192.168.1.4又是192.168.1.2的从库,导致192.168.1.2和192.168.1.4的主从断掉。
    并且在192.168.1.2上创建了新库还原数据删除等操作,导致192.168.1.4提示错误。


    模拟如下:
    通过从库查看主从状态:
    mysql> show slave statusG  
    *************************** 1. row ***************************
                   Slave_IO_State: Waiting for master to send event
                      Master_Host: 172.16.33.243
                      Master_User: master
                      Master_Port: 3306
                    Connect_Retry: 60
                  Master_Log_File: mysql-bin.000006
              Read_Master_Log_Pos: 303
                   Relay_Log_File: relay-log.000005
                    Relay_Log_Pos: 340
            Relay_Master_Log_File: mysql-bin.000006
                 Slave_IO_Running: Yes
                Slave_SQL_Running: No
                  Replicate_Do_DB: 
              Replicate_Ignore_DB: test
               Replicate_Do_Table: 
           Replicate_Ignore_Table: 
          Replicate_Wild_Do_Table: 
      Replicate_Wild_Ignore_Table: 
                       Last_Errno: 1049
                       Last_Error: Error 'Unknown database 'sakila'' on query. Default database: 'sakila'. Query: 'create table sakila (id int,name varchar(2))'
                     Skip_Counter: 0
              Exec_Master_Log_Pos: 194
                  Relay_Log_Space: 745
                  Until_Condition: None
                   Until_Log_File: 
                    Until_Log_Pos: 0
               Master_SSL_Allowed: No
               Master_SSL_CA_File: 
               Master_SSL_CA_Path: 
                  Master_SSL_Cert: 
                Master_SSL_Cipher: 
                   Master_SSL_Key: 
            Seconds_Behind_Master: NULL
    Master_SSL_Verify_Server_Cert: No
                    Last_IO_Errno: 0
                    Last_IO_Error: 
                   Last_SQL_Errno: 1049
                   Last_SQL_Error: Error 'Unknown database 'sakila'' on query. Default database: 'sakila'. Query: 'create table sakila (id int,name varchar(2))'
      Replicate_Ignore_Server_Ids: 
                 Master_Server_Id: 360360
    1 row in set (0.00 sec)


    记录下二进制日志的和点的位置:
    Relay_Master_Log_File: mysql-bin.000006
    Exec_Master_Log_Pos: 194


    停掉从库的slave
    mysql> stop slave;
    Query OK, 0 rows affected (0.01 sec)


    并在主库删除掉新建的库
    mysql> drop database sakila;
    Query OK, 1 row affected (0.04 sec)


    重新进行主从复制
    mysql> show master status;
    +------------------+----------+--------------+------------------+
    | File             | Position | Binlog_Do_DB | Binlog_Ignore_DB |
    +------------------+----------+--------------+------------------+
    | mysql-bin.000006 |      388 |              |                  |
    +------------------+----------+--------------+------------------+
    1 row in set (0.00 sec)


    mysql> change master to master_host='192.168.1.2',master_port=3306,master_user='master',master_password='123456',master_log_file='mysql-bin.000006',master_log_pos=388;
    Query OK, 0 rows affected (0.01 sec)


    mysql> start slave ;
    Query OK, 0 rows affected (0.00 sec)


    查看主从状态还提示原来的错误,使用sql_slave_skip_counter参数
    mysql> show variables like  '%skip%';
    +------------------------+-------+
    | Variable_name          | Value |
    +------------------------+-------+
    | skip_external_locking  | ON    |
    | skip_name_resolve      | ON    |
    | skip_networking        | OFF   |
    | skip_show_database     | OFF   |
    | slave_skip_errors      | OFF   |
    | sql_slave_skip_counter | 0     |
    +------------------------+-------+
    6 rows in set (0.00 sec)


    默认为0


    mysql> set global sql_slave_skip_counter = 1;


    mysql> start slave;


    还提示错误,继续


    mysql> set global sql_slave_skip_counter = 1;


    mysql> start slave;


    mysql> show slave statusG
    *************************** 1. row ***************************
                   Slave_IO_State: Waiting for master to send event
                      Master_Host: 192.168.1.2
                      Master_User: master
                      Master_Port: 3306
                    Connect_Retry: 60
                  Master_Log_File: mysql-bin.000006
              Read_Master_Log_Pos: 388
                   Relay_Log_File: relay-log.000002
                    Relay_Log_Pos: 253
            Relay_Master_Log_File: mysql-bin.000006
                 Slave_IO_Running: Yes
                Slave_SQL_Running: Yes
                  Replicate_Do_DB: 
              Replicate_Ignore_DB: test
               Replicate_Do_Table: 
           Replicate_Ignore_Table: 
          Replicate_Wild_Do_Table: 
      Replicate_Wild_Ignore_Table: 
                       Last_Errno: 0
                       Last_Error: 
                     Skip_Counter: 0
              Exec_Master_Log_Pos: 388
                  Relay_Log_Space: 403
                  Until_Condition: None
                   Until_Log_File: 
                    Until_Log_Pos: 0
               Master_SSL_Allowed: No
               Master_SSL_CA_File: 
               Master_SSL_CA_Path: 
                  Master_SSL_Cert: 
                Master_SSL_Cipher: 
                   Master_SSL_Key: 
            Seconds_Behind_Master: 0
    Master_SSL_Verify_Server_Cert: No
                    Last_IO_Errno: 0
                    Last_IO_Error: 
                   Last_SQL_Errno: 0
                   Last_SQL_Error: 
      Replicate_Ignore_Server_Ids: 
                 Master_Server_Id: 360360
                 
                 
    最后在192.168.1.2上重新建库并还原数据

  • 相关阅读:
    Daily Scrum 10.26
    Daily Scrum 10.25
    Daily Scrum 10.24
    Week7 Teamework from Z.XML-任务分配
    Daily Scrum 10.23
    软件工程项目组Z.XML会议记录 2013/10/22
    Week7 Teamework from Z.XML-NABC
    cocos2d-x环境搭建 摘自百度文库
    Go 接口
    Auto-Scaling Web Applications in Clouds: A Taxonomy and Survey读书笔记
  • 原文地址:https://www.cnblogs.com/hankyoon/p/5169680.html
Copyright © 2020-2023  润新知