Multi-master replikering (en slave med mere end én master) understøttes ikke af MySQL (udover MySQL Cluster). Du kan lave en master-master replikering af en cirkulær (ring) replikering (beskrevet her eller her ).
I Høj ydeevne MySQL 2. udgave
forfatterne beskriver en måde at emulere multi-master-replikering ved hjælp af en smart kombination af master-master-replikering og Blackhole
lagermotor (Kapitel 8 Replikering> Replikeringstopologier> Tilpassede replikeringsløsninger> Emulering af multimasterreplikering s. 373 - 375
).
De viser to mulige topologier:
Brug af to co-masters (tillader at skifte masteren af slaven fra Master 1 til Master 2 )
- Master 1: vært DB1 og replikerer DB2 fra Master 2; lagermaskinen for alle tabeller i DB2 er ændret til
Blackhole
så dataene ikke effektivt gemmes på Master 1 . - Master 2: vært DB2 og replikerer DB1 fra Master 1; lagermaskinen for alle tabeller i DB1 er ændret til
Blackhole
så dataene ikke effektivt gemmes på Master 2 - Slave 1: replikerer DB1 og DB2 fra enten Master 1 eller Master 2 (tillader at skifte master); resultatet er, at Slave 1 replikerer begge databaser, der effektivt hostes på to forskellige mastere.
Brug af en master-kæde
- Master 1: kun vært DB1
- Master 2: vært DB2 og replikerer DB1 fra Master 1; lagermaskinen for alle tabeller i DB1 er ændret til
Blackhole
så dataene ikke effektivt gemmes på Master 2 - Slave 1: replikerer DB1 og DB2 fra Master 2; resultatet er, at Slave 1 replikerer begge databaser, der effektivt hostes på to forskellige mastere.
Bemærk, at denne opsætning kun tillader dig at sende opdateringer til DB1 gennem Master 1 og opdateringer til DB2 til Master 2 . Du kan ikke send opdateringer til begge tabeller til vilkårlige mastere.
Måske er det muligt at kombinere den beskrevne løsning med hacket til en ægte master-master-replikering (tillader opdateringer til begge mastere), der bruger en form for autoincrement-mangling og er beskrevet her eller her .