2010-08-20 43 views
3

我有master-master複製成功工作,它工作正常,我所做的所有更改也會反映到slave。如何防止使用mysql複製某些記錄

但我不希望那個奴隸反映所有的變化 - 只有我想要的這樣的記錄應該反映在奴隸身上。如何做到這一點?

+0

您能舉出一個您想要選擇性複製哪些記錄的示例,爲什麼?解決方案可能在於你爲什麼要這樣做,而不是你想做什麼。 – 2010-09-03 10:27:23

回答

1

您可以防止從從處理特定的數據庫,以及各個表的更新,無論是作爲一個白名單或黑名單 - 看到slave configuration options瞭解詳情。

如果您的標準比這更復雜,您可能需要重新考慮。

1

我能想到的唯一的辦法就是創建過濾掉你不想複製,再複製該視圖的記錄主人的視圖。在奴隸的「視圖」表是MYISAM/InnoDB,而不是一個視圖。我知道你可以複製到不同的表類型(即InnoDB-> MyISAM),但我從來沒有嘗試過使用View。

1

不知道你想達到什麼目的,很難說。

您可以防止對單個表或整個數據庫的更改通過複製進行(例如,建議您不要複製mysql。*表,因爲您可能不希望GRANT複製)(Paul Dixon的答案提供了關於這方面的更多信息)

如果要防止複製特定類型的語句(例如DELETE查詢),那麼您可能可以在複製它們之前使用MySQL代理來重寫這些查詢。

如果你打算到分片對奴隸數據庫(例如:記錄,起始於A-M一臺服務器上和N-Z上的另一個)然後再次MySQL的代理也許能幫助你。