2014-03-13 62 views
0

我的問題是關於使用Linux服務器的MySQL上的主從複製。防止從屬複製刪除

我只是測試在MySQL複製的東西,我想知道是否有可能防止奴隸複製刪除語句?

我知道從設備將複製主設備中的所有插入/刪除操作。但我只想要它複製插入。

這可能嗎?

+0

在試圖回答之前 - 讓我問你,'update'會怎麼做? –

+0

對不起,這不會更新。目前只能插入和刪除。更新了問題 – jeffry

回答

-1

那麼它可以做到:

  • 使用SET SQL_LOG_BIN = 0;在執行您的刪除之前在主要的 上刪除會話。因此將阻止寫入 二進制日誌
  • 在從表上執行BEFORE DELETE/UPDATE/INSERT觸發器以忽略 刪除。
    同樣的規則適用於任何聲明!
+0

好吧我想這是自動完成的,你如何建議我去實施方法2? – jeffry

+0

選擇你的對象,並根據你的需要改變它們! (創建這些觸發器)。 –

1

參考this

有幾種方法可以做到這一點。

  1. 對於 之前的相關會話運行SET SQL_LOG_BIN=0;執行刪除之前。這樣它就不會寫入 二進制日誌
  2. 在從屬設備上執行BEFORE DELETE觸發器以忽略 刪除。

    對於我不想複製的語句使用方法#1。它需要SUPER特權。

+0

好吧,我想這是自動完成的,你如何建議我去實施方法2? – jeffry

+1

#2是不可能的。你不能通過觸發器在查詢中停止一個動作而不會拋出一個異常,這應該反過來停止複製......而對於基於行的二進制日誌事件,從屬的觸發器也不會觸發,因爲行改變了由於主機上的觸發器觸發而引起的故障被髮送到從機,因爲行更改並且從機上的觸發器操作將是多餘的。 –