Multi-master replikace (slave s více než jedním masterem) není podporována MySQL (kromě MySQL Cluster). Můžete provést master-master replikaci kruhové (kruhové) replikace (popsaná zde nebo zde ).
V Vysoce výkonné MySQL 2. vydání
autoři popisují způsob, jak emulovat multi-master replikaci pomocí chytré kombinace master-master replikace a Blackhole
storage engine (Kapitola 8 Replikace> Replikační topologie> Vlastní řešení replikace> Emulování replikace s více mastery str. 373–375
).
Zobrazují dvě možné topologie:
Použití dvou spolumasterů (což umožňuje přepnout master podřízeného z Master 1 na Master 2 )
- Hlavní 1: hostitelé DB1 a replikuje DB2 z Master 2; modul úložiště pro všechny tabulky v DB2 se změní na
Blackhole
aby data nebyla efektivně uložena na Master 1 . - Hlavní 2: hostitelé DB2 a replikuje DB1 z Master 1; modul úložiště pro všechny tabulky v DB1 se změní na
Blackhole
aby data nebyla efektivně uložena na Master 2 - Slave 1: replikuje DB1 a DB2 buď z Master 1 nebo Master 2 (umožňující přepínání masterů); výsledkem je Slave 1 replikuje obě databáze, které jsou efektivně hostovány na dvou různých hlavních serverech.
Použití hlavního řetězce
- Hlavní 1: pouze hostitelé DB1
- Hlavní 2: hostitelé DB2 a replikuje DB1 z Master 1; modul úložiště pro všechny tabulky v DB1 se změní na
Blackhole
aby data nebyla efektivně uložena na Master 2 - Slave 1: replikuje DB1 a DB2 z Master 2; výsledkem je Slave 1 replikuje obě databáze, které jsou efektivně hostovány na dvou různých hlavních serverech.
Upozorňujeme, že toto nastavení umožňuje odesílat aktualizace pouze do DB1 přes Hlavní 1 a aktualizace DB2 na Master 2 . Nemůžete posílat aktualizace do kterékoli tabulky libovolným masterům.
Možná je možné zkombinovat popsané řešení s hackem pro skutečnou replikaci master-master (umožňující aktualizace obou masterů), která používá nějaký druh autoincrement-manglingu a je popsána zde nebo zde .