La regola base é che la replica non deve modificare dati che il master inserisce o aggiorna.
Nel tuo caso dovresti fare in modo che ogni DB abbia dati "master" che gli altri DB non vadano a modificare e nel contempo avere dati "replica" da parte degli altri DB che il sistema non cambi.
Una topologia dove ci sono master che si modificano a vicenda puó portare infatti a tutta una serie di problemi, ma se ti curi di separare i dati che ogni DB va a scrivere/aggiornare (localmente) da quelli che deve leggere (dati replicati) non dovresti incorrere in problemi.
Ultima modifica di two_socks; 09-02-2016 a 02:42
Chi non gode a tavola non gode neanche a letto
Ti ringrazio..
scusami però la domanda banale... Non esiste quindi un sistema che mi permetta di scrivere indifferentemente su uno qualsiasi dei database e poi MySql pensa lui (o "qualcosa" per lui) a ricopiare i dati precisi precisi sugli altri database senza che io mi debba preoccupare di altro?
Questo é quello che fa esattamente la replicazione.
Il problema é che ci possono essere casi in cui i dati vanno in conflitto e quindi la replicazione si blocca fino a quando non viene risolta.
Facciamo caso che la replica é fuori sincrono di 10 secondi.
Se avviene un inserimento che autoincrementa una chiave primaria nel Master e anche lo Slave (non ancora aggiornato) effettua un inserimento sulla stessa tabella, si verrebbe a creare un conflitto nel momento in cui la replica (leggendo il binary log del Master) proverebbe a inserire dati con la stessa chiave primaria.
Quindi, puoi "...scrivere indifferentemente su uno qualsiasi dei database..."?
Si, l'importante é che tu sappia che non si vengano a creare conflitti tra chiavi primarie e tabelle correlate, altrimenti staresti ogni momento a mettere mani sul DB per rimediare agli errori che MySQL non saprebbe come risolvere.
Chi non gode a tavola non gode neanche a letto