Sto usando SymmetricDS per sincronizzare i database. È in grado di sincronizzare o replicare i dati tra nodi (server/database), solo spingendo o estraendo i dati definiti dall'utente. È un software basato su Java, ha una curva di apprendimento ripida, ma fa davvero il suo lavoro.
SymmetricDS può essere impostato per inviare le modifiche da un nodo agli altri due nodi, assicurandosi così che tutti e tre i nodi contengano gli stessi dati. Devi assicurarti che le chiavi primarie siano chiavi univoche e non valori incrementati automaticamente assegnati dal database poiché molto probabilmente questo sarà un problema tra i tre diversi database che desideri sincronizzare.
Il software installa i trigger sul database e acquisisce le modifiche quando vengono eseguite le operazioni INSERT, UPDATE o DELETE (e altre). Queste modifiche ai dati vengono quindi richiamate sugli altri nodi. Il software deve essere eseguito in ogni posizione, ma non necessita di una connessione Internet sempre disponibile.
All'inizio temevo che i trigger su tutti i miei tavoli avrebbero rallentato le prestazioni, ma questo non è stato affatto un problema. Non posso dire che abbiamo riscontrato problemi con le prestazioni dopo l'installazione dei trigger.
Dai un'occhiata a http://symmetricds.org/ per maggiori dettagli.