2009-10-16 80 views

回答

10

多主複製(具有多個主站的從站)不支持MySQL(除MySQL集羣外)。您可以執行循環(環)複製的主 - 主複製(描述爲herehere)。

High performance MySQL 2nd edition,作者描述了一種使用主 - 主複製的巧妙組合和Blackhole存儲引擎來模擬多主複製(第8章複製>複製拓撲>定製複製解決方案>仿效多主複製第373 - 375) 。

它們示出了兩個可能的拓撲:

使用兩個共主人(允許從萬事達1萬事達2切換從設備的主設備)

  • 萬事達1 :主機DB1和副本DB2 from Master 2;用於DB2中所有表的存儲引擎更改爲Blackhole,以便數據不會有效存儲在主設備1上。
  • 萬事達2:從萬事達1主機DB2和複製DB1;在DB1所有表存儲引擎改變爲Blackhole,使得數據不能被有效地存儲在萬事達2
  • 從屬1:複製DB1DB2從任萬事達1Master 2(允許切換主人);結果是從站1複製兩個不同主站上有效託管的兩個數據庫。

使用主鏈

  • 萬事達1:僅承載DB1
  • 萬事達2:主機DB2和複製DB1萬事達1;在DB1所有表存儲引擎改變爲Blackhole,使得數據不能被有效地存儲在萬事達2
  • 從屬1:複製DB1DB2萬事達2;結果是從站1複製兩個不同主站上有效託管的兩個數據庫。

請注意,此設置只允許你通過碩士1和更新更新發送到DB1DB2碩士2。你不能發送更新到任何主表的任何表。

Pehaps它可能與黑客所描述的解決方案結合起來,使用某種自動增量-首被搞砸的,並描述herehere一個真正的主 - 主複製(允許更新都是原件)。

0

沒有辦法,我知道。但是,如果這裏的要求只是簡單地擁有一個基於複製的備份機器,那麼您可以很容易地運行三個MySQL服務器(在不同的地址和/或端口上) - 我們在這裏執行此操作,並帶有兩個複製環每個包括我們的內部登臺服務器作爲節點。

如果您確實希望將所有數據都放到單個服務器中,並且表格模式是固定的或者非常靜態的並且在您的控制之下,那麼您就可以實現這個想法:建立一個服務器,其中包含三個數據庫並使用聯合引擎鏈接所有表。在理論上(巨大的警告:我從來沒有嘗試過!),然後您可以將這些聯合表複製到另一臺服務器上(也可能在同一臺機器上),從而爲您提供真正的單個MySQL數據的實時副本實例。你甚至可以嘗試再次複製,但這種方式可能是瘋狂:)

0

我對MySQL沒有太多瞭解,但是您是否有可能設置「僅上載」複製配置,其中主/發佈者的角色僅用於收集從屬/訂戶水平。

相關問題