Jeg bruger SymmetricDS til at synkronisere databaser. Den er i stand til at synkronisere eller replikere data mellem noder (servere/databaser), kun skubbe eller trække de data, du definerer. Det er en software baseret på Java, den har en stejl indlæringskurve, men den gør virkelig arbejdet.
SymmetricDS kan sættes op til at skubbe ændringer fra én node til de to andre noder og dermed sikre sig, at alle tre noder indeholder de samme data. Du skal sikre dig, at primære nøgler er unikke nøgler og ikke automatisk inkrementerede værdier tildelt af databasen, da dette højst sandsynligt vil være et problem på tværs af de tre forskellige databaser, du gerne vil synkronisere.
Softwaren installerer triggere på databasen og fanger ændringer, når INSERT, UPDATE eller DELETE (og andre) operationer udføres. Disse dataændringer påkaldes derefter på de andre noder. Softwaren skal køre på hver lokation, men behøver ikke en internetforbindelse, der er tilgængelig til enhver tid.
Jeg var i begyndelsen bekymret for, at triggere på alle mine borde ville sænke ydeevnen, men dette har overhovedet ikke været et problem. Jeg kan ikke sige, at vi har opdaget nogen problemer med ydeevnen, efter at triggerne blev installeret.
Tag et kig på http://symmetricds.org/ for flere detaljer.