sql >> Database >  >> RDS >> Mysql

Is het mogelijk om N-master => 1-slave-replicatie te doen met MySQL?

Multi-master replicatie (een slave met meer dan één master) wordt niet ondersteund door MySQL (naast MySQL Cluster). U kunt een master-master-replicatie van een circulaire (ring)-replicatie doen (beschreven hier of hier ).

In Hoge prestaties MySQL 2e editie de auteurs beschrijven een manier om multi-master-replicatie te emuleren met behulp van een slimme combinatie van master-master-replicatie en de Blackhole storage engine (Hoofdstuk 8 Replicatie> Replicatietopologieën> Aangepaste replicatieoplossingen> Emuleren van multimasterreplicatie p. 373 - 375 ).

Ze tonen twee mogelijke topologieën:

Twee co-masters gebruiken (waardoor de master van de slave kan worden gewijzigd van Master 1 naar Master 2 )

  • Meester 1: hosts DB1 en repliceert DB2 van Master 2; de opslagengine voor alle tabellen in DB2 is gewijzigd in Blackhole zodat de gegevens niet effectief worden opgeslagen op Master 1 .
  • Meester 2: hosts DB2 en repliceert DB1 van Master 1; de opslagengine voor alle tabellen in DB1 is gewijzigd in Blackhole zodat de gegevens niet effectief worden opgeslagen op Master 2
  • Slaaf 1: repliceert DB1 en DB2 van een van beide Master 1 of Master 2 (waardoor van master kan worden gewisseld); het resultaat is dat Slaaf 1 repliceert beide databases die effectief op twee verschillende masters worden gehost.

Een hoofdketen gebruiken

  • Meester 1: alleen hosts DB1
  • Meester 2: hosts DB2 en repliceert DB1 van Master 1; de opslagengine voor alle tabellen in DB1 is gewijzigd in Blackhole zodat de gegevens niet effectief worden opgeslagen op Master 2
  • Slaaf 1: repliceert DB1 en DB2 van Master 2; het resultaat is dat Slaaf 1 repliceert beide databases die effectief op twee verschillende masters worden gehost.

Houd er rekening mee dat u met deze configuratie alleen updates kunt verzenden naar DB1 via Master 1 en updates voor DB2 naar Master 2 . Je kan niet stuur updates naar beide tabellen naar willekeurige masters.

Misschien is het mogelijk om de beschreven oplossing te combineren met de hack voor een echte master-master-replicatie (waardoor updates voor beide masters mogelijk zijn) die een soort auto-increment-mangling gebruikt en wordt beschreven hier of hier .



  1. Heb je een Oracle-tabel met de naam gereserveerd woord, welke problemen kunnen zich voordoen?

  2. hoe dataframe (R) naar Oracle-tabel te exporteren

  3. Kan geen verbinding maken met localDB in VS2012 - Er is een netwerkgerelateerde of exemplaarspecifieke fout opgetreden tijdens het tot stand brengen van een verbinding met SQL Server...

  4. Ongewenst resultaat van db:raw