Punto informatico Network
Canali
20090625115954_737063149_20090625115932_18826826_sl_sync.png

Come replicare un database MySQL su più server (Windows/Linux)

12/10/2010
- A cura di
Zane.
Tecniche Avanzate - MySQL consente di "fotocopiare" i database gestiti da un singolo server principale su molteplici server secondari: un'ottima soluzione per distribuire il carico oppure per approntare una procedura di backup efficiente ed automatica.

Download

Tag

Passa qui con il mouse e visualizza le istruzioni per utilizzare i tag!

server (2) , windows (1) , linux (1) , mysql (1) , database (1) , amministrazione (1) , dba (1) , backend (1) .

Valutazione

  •  
Voto complessivo 4 calcolato su 18 voti
Il pezzo che stai leggendo è stato pubblicato oltre un anno fa. AvvisoLa trattazione seguente è piuttosto datata. Sebbene questo non implichi automaticamente che quanto descritto abbia perso di validità, non è da escludere che la situazione si sia evoluta nel frattempo. Raccomandiamo quantomeno di proseguire la lettura contestualizzando il tutto nel periodo in cui è stato proposto.

Quando il carico sull'infrastruttura inizia a divenire elevato, affiancare un secondo server a quello principale è pressochè un obbligo per rimanere operativi.

Anche la versione "community" di MySQL (ovvero quella gratuita) offre una comoda funzione di replicazione che consente di "fotocopiare" in maniera del tutto automatica i dati immessi sul primo server anche sull'altro (oppure "sugli altri", in caso le macchine impiegate siano più numerose)

Scaleout.png

In più, il tutto funziona in modo asincrono: questo significa che nella circostanza in cui i server secondari siano impossibilitati ad aggiornarsi per diverso tempo (ad esempio, a causa di un guasto hardware o per la temporanea mancanza di connettività), il database verrà automaticamente ri-allineato non appena il problema sarà risolto.

L'operazione è chiamata replicazione (replication) e in questo articolo vedremo come predisporla.

Terminologia: "master" e "slave"

Prima di iniziare, puntualizziamo la terminologia. In ambito di replicazione, si parla di server "master" e di server "slave".

Il "master" è il database che possiamo definire "primario": è su di esso, e solo su di esso!, che dovranno essere effettuate le operazioni di scrittura (INSERT/UPDATE/DELETE ecc). Tutte le modifiche apportate ai dati memorizzati sul master saranno poi replicate sugli altri server secondari.

I server secondari sono chiamati "slave": il loro compito è quello di erogare i dati in sola-lettura e di recuperare in maniera automatica tutte le novità immesse sul master associato.

Vi possono essere molteplici slave collegati ad un singolo master, ma non più di un solo master collegato ad ogni slave. In altre parole, è possibile replicare i dati su molteplici server secondari, ma ognuno di essi può mantenersi allineato ad un solo master.

Di cosa avete bisogno

Prima di iniziare la configurazione dovete controllare che la porta di MySQL in esecuzione sul master (si tratta della 3306 TCP, se avete mantenuto le impostazioni di default) sia aperta e raggiungibile dagli slave. Potete verificarlo tentando di connettervi dall'esterno mediante il client a linea di comando (mysql -uNomeUtente -pMiaPassword -hIndirizzoMaster, ricordando che, per impostazione predefinita, l'utente root non è abilitato alle connessioni remote) oppure con uno strumento di port-scanning come Nmap.

Dovete inoltre disporre di almeno due server distinti (un master e uno slave), ed avere pieno accesso ad entrambi.

Su ognuno di essi dovrà poi essere in esecuzione un'istanza di MySQL. In questa sede darò per scontato che il programma sia già installato e configurato: per maggiori informazioni circa il setup su Windows, si veda "Trasformare il PC in un server HTTP con Apache, PHP, MySQL e Perl".

Non è necessario che i server utilizzino la stessa piattaforma: potete replicare senza problemi un master Linux su uno slave Windows (o viceversa), anche in caso un sistema operativo sia a 32 bit e l'altro a 64 bit (o viceversa).

Non è nemmeno richiesto che la versione di MySQL sia la medesima: la replicazione tollera una o due minor release (il numero dopo il punto) di differenza. È comunque altamente raccomandabile usare sempre le ultime build disponibili su entrambi i sistemi.

Pagina successiva
Configurazione del master
Pagine
  1. Come replicare un database MySQL su più server (Windows/Linux)
  2. Configurazione del master
  3. Configurazione degli slave
  4. Osservazioni e conclusioni

 

Segnala ad un amico

Tuo nome Tuo indirizzo e-mail (opzionale)
Invia a:
    Aggiungi indirizzo email
    Testo

    © Copyright 2024 BlazeMedia srl - P. IVA 14742231005

    • Gen. pagina: 0.22 sec.
    •  | Utenti conn.: 80
    •  | Revisione 2.0.1
    •  | Numero query: 43
    •  | Tempo totale query: 0.03