Skip to main content

Impostare una Master-Master Replication tra due MySQL Server

Premessa

Impostare una replication di tipo Master-Master, nota anche come mirror, è uno dei modi più semplici ed economici per incrementare le performance e la stabilità del sistema. Nel caso in cui non sappiate di cosa si tratta immaginate due istanze di MySQL Server che comunicano in tempo reale condividendo tutte le query di inserimento, modifica ed eliminazione – comprese quelle presenti all’interno di funzioni e stored procedures – in modo che i dati siano costantemente inseriti, aggiornati ed eliminati dall’una e dall’altra parte. Non solo: nell’esempio che faremo in questo articolo vedremo come la replication possa essere configurata anche per condividere la creazione, modifica ed eliminazione di utenti e database.

Inutile dire che, per ottenere questo, occorrerà acquistare un secondo server (ovvero un secondo servizio MySQL), possibilmente all’interno della stessa LAN, cosa che comporterà un aumento dei costi. Un investimento che non tarderà a ripagarsi, dotando il vostro sistema di due punti di forza di notevole importanza in termini di qualità del servizio:

  • Un mirror di tipo 1:1 per tutti i database ospitati dal sistema – oppure, a scelta, per un sottoinsieme di database selezionabile a piacere – che renderà possibile ripristinare il sistema in conseguenza di un qualsivoglia crash hardware o software senza perdita di dati e senza bisogno di dover ripristinare alcun backup.
  • Una base dati notevolmente più robusta ed efficiente,  che consentirà di bilanciare meglio gli accessi di eventuali client (o siti web) consentendo di suddividere le connessioni su due diversi servizi, ciascuno dotato di un IP e di una capacità computazionale propria, dotati della medesima base dati.

Uno degli utilizzi più comuni della Master-Master replication è all’interno di un cluster di 2 VPS o server dedicati, ciascuno dei quali dotato di un web server http che contiene uno o più siti alimentati da un database MySQL installato sulla stessa macchina. Mettendo in Master-Master replication i due servizi MySQL è possibile creare un mirror conforme di tutti i servizi web, creando così un vero e proprio sistema di disaster recovery (vedi figura sottostante) e/o un web cluster a 2 nodi da servire attraverso un load-balancer hardware installato a monte su un terzo IP (o altra tecnica di balancing a scelta).

 

mysql-master-master-replication-diagram

(altro…)