2012-08-29 102 views
0

我們正在運行標準的Mysql Master/Slave複製系統,該系統幾年來一直運行良好。實際上,我們可以很好地使用Slave DB(在將其轉換爲Master之後)從服務器中斷(使主站脫機)中恢復。重播Mysql複製錯誤

無論如何,在我們恢復服務器並將原來的Master恢復爲Master並將原始Slave恢復爲Slave之後,發生了導致我們問題的問題。

這是由於我是一個白癡 - 而不是其他任何東西!

基本上寫發生在奴隸 - 這意味着對主同桌寫不能在複製因重複的主鍵錯誤。

正如我所說,我的錯。

我可以刪除從被錯誤地寫在那裏的奴隸記錄 - 從而清除從衝突的ID,但我想從主數據庫記錄。我知道我可以通過跳過Master的相關查詢(通過將SQL_SLAVE_SKIP_COUNTER設置爲1)來「修復」複製 - 但這將意味着我失去了Master的記錄。

那麼,有沒有一種'重播'錯誤的複製寫?基本上將複製指向一個查詢回來?

還是我必須要經過我扔下從整個繁瑣程序,重新填充它從我上次成功備份,並重新設置它是一個奴隸?

非常感謝提前。

回答

0

如果它是一個簡單的修改/更新/ ......你爲什麼不乾脆玩它的主人(手動或從二進制日誌服用,如果你有一個),與從的奴隸過程中脫落,然後設置從站(顯示主站狀態;主站)上的新複製指針(文件&位置),並重新啓動從站?

+0

感謝您的回覆@Parallelis。實際上我不需要那些出錯的更新 - 這更多的是如何去修復它的問題。但你已經幫助我 - 我的答案如下 – ChrisW

0

答案實際上是把我凝視在臉上(是不是總是這樣!)。這意味着這兩個新記錄有相同ID -

重複的主鍵錯誤是由我做從屬節點上的刀片和刀片到同一個表上的主造成的。

幸運的是我,我也沒必要對從插入,所以我只是刪除了 - 這意味着,只有一個記錄與主鍵值。

我只需要一種方法來讓複製嘗試複製記錄 - 這很容易。

只需重新啓動奴隸!

所以:

mysql root:(none)>START SLAVE; 
Query OK, 0 rows affected (0.03 sec) 

mysql root:(none)> _