Mysql-Replication

MySQL 複製從屬伺服器中 Seconds_behind_master 的值不斷增加

  • February 19, 2020

我們有一個MySQL 5.0.77主從複製。在過去的幾周里,複製沒有正常執行,它正在給出Duplicate entry error 1062. 該Set Global Skip-counter選項沒有幫助,所以我不得不error no.1062通過將其添加到/etc/my.cnf文件中來跳過它,然後它報告 table does not exist 錯誤在一個特定的數據庫中。

然後,我mysqldump在上週末獲取了該數據庫並在 Slave 中恢復。然後Slave IO_Thread兩者Slave_SQL都開始正常執行,看起來複製回到了正軌。該Seconds_behind_master值非常高,然後在過去 4 天開始下降。

今天查看slave的複制狀態,發現這個seconds_behind_master值從早上開始一直在增加。我停止了slave IO_Thread一次,然後 seconds_behind_master 變為 Null。然後在我開始之後IO_thread,價值變得相同並不斷增加。

我看到一個程序從早上 system user gss-app Connect 9535736 copy to tmp table ALTER TABLEqueue_clicks ADD INDEX(puid 開始執行)

請幫我解決這個問題。謝謝。

#mysql> show slave status\G;
`*************************** 1. row ***************************
            Slave_IO_State: Waiting for master to send event
               Master_Host: 203.x.x.x
               Master_User: replication
               Master_Port: 3306
             Connect_Retry: 60
           Master_Log_File: mysql-bin.000990
       Read_Master_Log_Pos: 185674180
            Relay_Log_File: mysqld-relay-bin.000224
             Relay_Log_Pos: 9286354
     Relay_Master_Log_File: mysql-bin.000774
          Slave_IO_Running: Yes
         Slave_SQL_Running: Yes
           Replicate_Do_DB:
       Replicate_Ignore_DB:
        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: 472142385
           Relay_Log_Space: 112995681998
           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: 9533355
1 row in set (0.00 sec)`

如果 IO 和 SQL 正在執行,並且Relay_Master_Log_File正在趕上Master_Log_File. 我相信延遲是因為您的總中繼日誌文件很大,大約。105G -Relay_Log_Space: 112995681998考慮到 Slave 位於 000774 位置,master 位於 000990 位置,總共有 214 個二進制日誌,每個大約 468M (105G/214) 等待在 slave 上重放。

我的建議是密切關注Relay_Master_Log_File並確保它正在上升並趕上Master_Log_File. 我還看到主控主機位於公共 IP 地址中,這種複制是通過公共網路還是慢速 WAN 進行的?這可能會引入延遲,連結越快越好。

引用自:https://serverfault.com/questions/674802