MySQL5.7半同步複製報錯案例分析

龍山游龍發表於2023-12-20

一、故障背景

  某次,一位客戶反饋半同步複製架構的三臺資料庫的報錯日誌都在不斷刷不同的ERROR資訊,但是沒有影響到業務的操作,根據以下錯誤日誌的報錯資訊進行分析。

  主節點1報錯資訊:

  主節點2報錯資訊:

  主節點3報錯資訊:

二、故障診斷

  首先根據報錯資訊,我們去排查複製的執行緒狀態以及半同步複製的狀態,根據查詢到的資訊判斷,資料庫的複製程式正常,半同步複製狀態正常,日誌點位也在同步更新。




  由此我們可以猜測,MySQL可能是因為bug導致崩潰。根據錯誤資訊作為關鍵字,可以到MySQL的Bug網站和Oracle內部網站MOS中查詢是否有相關的記錄。

  預料之中,在MOS中,匹配到了類似的故障描述。詳細可參考文件 [ERROR] [MY-011181] [Repl] Semi-sync Slave Net_flush() Reply Failed (Doc ID 2920615.1)


  根據文件的說明,這個是半同步複製已知的問題,此訊息提示是不必要的,但日誌級別為 ERROR,是可以忽略的。

  而後在MySQL的Bug網站

從改 bug種也可以看到半同步複製的相關特性會導致該 ERROR資訊的產生。

三、解決辦法和建議

  1、此bug在半同步複製中是常見的,無法對ERROR進行遮蔽,可以將半同步複製轉換為非同步複製進行避免。

  2、升級到mysql8.0版本,建議評估好版本的穩定性以及對系統的影響,由於跨大版本升級需要在測試環境中進行相關測試。

來自 “ ITPUB部落格 ” ,連結:https://blog.itpub.net/30310891/viewspace-3000831/,如需轉載,請註明出處,否則將追究法律責任。

相關文章