MySQL同步故障:" Slave_SQL_Running:No" 的解決方法

進入MySQL的slave服務器後,查看slave狀態:mysql

mysql> show slave status \G
*************************** 1. row ***************************
               Slave_IO_State: Waiting for master to send event
                  Master_Host: 192.168.6.120
                  Master_User: repl
                  Master_Port: 3306
                Connect_Retry: 60
              Master_Log_File: zhangjin1.000001
          Read_Master_Log_Pos: 1320277
               Relay_Log_File: jin-123-relay-bin.000002
                Relay_Log_Pos: 283
        Relay_Master_Log_File: zhangjin1.000001
             Slave_IO_Running: Yes
            Slave_SQL_Running: No
              Replicate_Do_DB: 
          Replicate_Ignore_DB:

能夠看到,Slave_SQL_Running的狀態是No,緣由通常可能有兩種:sql

一、程序可能在slave上進行了寫操做。服務器

二、多是slave機器重啓後,事務回滾形成的。code

通常狀況下,是事務回滾形成的。事務

解決方法以下:it

GLOBAL SQL_SLAVE_SKIP_COUNTER=1;
start slave;
Query OK, 0 rows affected (36.89 sec)

mysql> set GLOBAL SQL_SLAVE_SKIP_COUNTER=1;
Query OK, 0 rows affected (0.01 sec)

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

再查看slave服務器狀態:event

mysql> show slave status \G
*************************** 1. row ***************************
               Slave_IO_State: Waiting for master to send event
                  Master_Host: 192.168.6.120
                  Master_User: repl
                  Master_Port: 3306
                Connect_Retry: 60
              Master_Log_File: zhangjin1.000001
          Read_Master_Log_Pos: 1320277
               Relay_Log_File: jin-123-relay-bin.000003
                Relay_Log_Pos: 283
        Relay_Master_Log_File: zhangjin1.000001
             Slave_IO_Running: Yes
            Slave_SQL_Running: Yes
              Replicate_Do_DB: 
          Replicate_Ignore_DB:

能夠看到,Slave_SQL_Running的狀態也是Yes了。ast

相關文章
相關標籤/搜索