MySql Report – Replication Error

之前公司的mysql有做 Mysql Replication,所以把一些常發生的錯誤以及發生斷線(沒同步)時,要如何處理以及建議改善的簡易評估報告。

發生斷時錯誤查詢

1. 進入 slave mysql 後 SHOW SLAVE STATUS;
2. 查看 mysqld.log

發生 "Duplicate Key" 錯誤

此為最常發生的錯誤而導致斷線,猜測有可能因為 replication lag 的關係,導致slave 與 master 資料發生重覆或是不存在,而剛好要對這筆資料進行動作處理,或是正要對這筆資料同步時。

解決 "Duplicate Key" 錯誤

1. 在 slave db 跳過重覆的資料
2. 人工去判斷並將資料砍掉或匯進去缺少的部份
3. 排程進行判斷並跳過

目前處理發生錯誤(斷線)機制

將 read 指到 master。
優:快速切換、短時間內正常運作。
缺:增加 master 負擔、必須盡快處理。

建議處理發生錯誤(斷線)機制

增加一台slave,發生斷線時將 read 指到 slave2。
優:快速切換、長時間內正常運作、不會增加 master 負擔、平時可以當作 read 做到High Available、當作另一資料備援。
缺:機制可能較複雜、建制時需停資料庫、有可能同時發生 Duplicate Key錯誤而斷線。

建議可增加下列措施

1. 寫隻php每天晚上去比對 master 和 slave 資料數是否一致。
2. 安裝mytop幫助了解可能出問題的query在哪裡。
3. 排程OPTIMIZE TABLE。

參考資料

Related Posts with Thumbnails

相關文章

發表迴響

您的電子郵件位址並不會被公開。 必要欄位標記為 *

*

您可以使用這些 HTML 標籤與屬性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>