2015-06-15 18 views
0

我正在尋找一種方法來防止MySQL複製主/從上的DELETE語句。在MySQL上取消DELETE REPLICATE

就我而言,Master是一個實時數據庫,具有新鮮的條目(不超過一週),Slave是一個包含所有條目的存檔數據庫。

我有幾個問題,我的測試:

  • 如果我在從引發異常BEFORE DELETE觸發器,像SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'DELETE canceled';

的SQL異常引發錯誤,停止我的奴隸。

  • 如果我提出一個警告,從站繼續運行,但刪除不取消
  • 我不能修改的MySQL my.cnf中。
  • 我不能使用布爾屬性來隱藏master,在slave上顯示(master數據庫必須儘可能少)。

我機架我對這個大腦,因爲過了幾天,我和「M運行的想法......

回答

0

你會過得更好寫刪除一個審計表。

阻止從站刪除的問題是:如果您嘗試插入一個已在主站中刪除的pk的行,並且您以某種方式阻止了從站中的刪除,插入將在從站中失敗。

您可以跟蹤具有相同結構的不同表中的已刪除行。

http://www.techonthenet.com/mysql/triggers/before_delete.php

CREATE TRIGGER audit_before_delete 
BEFORE DELETE 
    ON yourtable FOR EACH ROW 

BEGIN 

    -- Find the deleted row and insert record into audit table 
    -- insert into yourtable_audit values (old.id, old.name, old.description); 

END; 
+0

感謝您的反饋,我找到奴隸跳過錯誤選項的方式;) –