MySQL Replication 出現 Duplicate Key

當 MySQL Replication 的 Slave 機器連進去, 使用 show slave status, 發現以下的訊息, 而 Replication 也隨著停下來不在運作的時後的做法~

Error 'Duplicate entry 'PRIMARY KEY' for key 1' on query. Default database: 'DB_NAME'. Query: 'INSERT INTO TABLE_NAME xxx VALUE( 'xxxx' )

這代表 Key 有重覆到, 原因不明, 也許是 MySQL 本身就有 Bug, 總之遇到這種狀況的處理方法, 可以把重覆的那筆資料砍掉(不過可能會有很多), 或者就是用以下做法:

  1. SET GLOBAL SQL_SLAVE_SKIP_COUNTER = N; (N 是要跳過幾筆 (1~ ...))
  2. start slave;
  3. show slave status; # 持續看看狀況, 若有則重覆上述步驟

這樣子就可以了, 當然建議寫一隻程式來跑(可能會有很多)

作者: Tsung

對新奇的事物都很有興趣, 喜歡簡單的東西, 過簡單的生活.

發表迴響

這個網站採用 Akismet 服務減少垃圾留言。進一步了解 Akismet 如何處理網站訪客的留言資料