sql >> Databasteknik >  >> RDS >> Mysql

Är det möjligt att göra N-master => 1-slav replikering med MySQL?

Multi-master replikering (en slav med mer än en master) stöds inte av MySQL (förutom MySQL Cluster). Du kan göra en master-master replikering av en cirkulär (ring) replikering (beskrivs här eller här ).

I Högpresterande MySQL 2:a upplagan författarna beskriver ett sätt att emulera multi-master replikering med en smart kombination av master-master replikering och Blackhole lagringsmotor (Kapitel 8 Replikering> Replikeringstopologier> Anpassade replikeringslösningar> Emulering av multimasterreplikering s. 373 - 375 ).

De visar två möjliga topologier:

Använda två co-masters (som gör det möjligt att byta master för slaven från Master 1 till Master 2 )

  • Mästare 1: värdar DB1 och replikerar DB2 från Master 2; lagringsmotorn för alla tabeller i DB2 ändras till Blackhole så att data inte lagras effektivt på Master 1 .
  • Master 2: värdar DB2 och replikerar DB1 från Master 1; lagringsmotorn för alla tabeller i DB1 ändras till Blackhole så att data inte lagras effektivt på Master 2
  • Slav 1: replikerar DB1 och DB2 från antingen Master 1 eller Master 2 (tillåter att byta master); resultatet är att Slav 1 replikerar båda databaserna som effektivt finns på två olika masters.

Använda en huvudkedja

  • Mästare 1: endast värd DB1
  • Master 2: värdar DB2 och replikerar DB1 från Master 1; lagringsmotorn för alla tabeller i DB1 ändras till Blackhole så att data inte lagras effektivt på Master 2
  • Slav 1: replikerar DB1 och DB2 från Master 2; resultatet är att Slav 1 replikerar båda databaserna som effektivt finns på två olika masters.

Observera att den här installationen endast tillåter dig att skicka uppdateringar till DB1 genom Master 1 och uppdateringar till DB2 till Master 2 . Du kan inte skicka uppdateringar till endera tabellen till godtyckliga masters.

Kanske är det möjligt att kombinera den beskrivna lösningen med hacket för en äkta master-master-replikering (som tillåter uppdateringar av båda masterna) som använder någon form av autoincrement-mangling och som beskrivs här eller här .



  1. MySQL Workbench - Anslut till en lokal värd

  2. Att ha en generisk GEOGRAPHY kolumn med PostGIS

  3. Hur lägger man upp en bild från iPhone-appen (i Swift) till MySQL-databasen?

  4. Räknar distinkta användar-id:n från flera tabeller