Mysql
 sql >> Database >  >> RDS >> Mysql

È possibile eseguire la replica N-master => 1-slave con MySQL?

La replica multi-master (uno slave con più di un master) non è supportata da MySQL (oltre a MySQL Cluster). Puoi eseguire una replica master-master di una replica circolare (ad anello) (descritta qui oppure qui ).

In Seconda edizione MySQL ad alte prestazioni gli autori descrivono un modo per emulare la replica multi-master utilizzando un'intelligente combinazione di replica master-master e Blackhole motore di archiviazione (Capitolo 8 Replica> Topologie di replica> Soluzioni di replica personalizzate> Emulazione della replica multimaster p. 373 - 375 ).

Mostrano due possibili topologie:

Utilizzo di due co-master (consentendo di cambiare il master dello slave da Master 1 al Master 2 )

  • Maestro 1: ospita DB1 e replica DB2 da Master 2; il motore di archiviazione per tutte le tabelle in DB2 è cambiato in Blackhole in modo che i dati non vengano effettivamente archiviati su Master 1 .
  • Maestro 2: ospita DB2 e replica DB1 da Master 1; il motore di archiviazione per tutte le tabelle in DB1 è cambiato in Blackhole in modo che i dati non vengano effettivamente archiviati su Master 2
  • Slave 1: replica DB1 e DB2 da uno dei Master 1 o Master 2 (consentendo di cambiare master); il risultato è quello Slave 1 replica entrambi i database che sono effettivamente ospitati su due master diversi.

Utilizzo di una catena principale

  • Maestro 1: ospita solo DB1
  • Maestro 2: ospita DB2 e replica DB1 da Master 1; il motore di archiviazione per tutte le tabelle in DB1 è cambiato in Blackhole in modo che i dati non vengano effettivamente archiviati su Master 2
  • Slave 1: replica DB1 e DB2 da Master 2; il risultato è quello Slave 1 replica entrambi i database che sono effettivamente ospitati su due master diversi.

Tieni presente che questa configurazione ti consente solo di inviare aggiornamenti a DB1 tramite Master 1 e aggiornamenti a DB2 al Master 2 . Non puoi inviare aggiornamenti a una delle due tabelle a master arbitrari.

Forse è possibile combinare la soluzione descritta con l'hack per una vera replica master-master (consentendo aggiornamenti a entrambi i master) che utilizza una sorta di manipolazione dell'autoincremento ed è descritta qui oppure qui .