Ik gebruik SymmetricDS om databases te synchroniseren. Het is in staat om gegevens tussen knooppunten (servers/databases) te synchroniseren of te repliceren, waarbij alleen de door u gedefinieerde gegevens worden gepusht of opgehaald. Het is een software gebaseerd op Java, het heeft een steile leercurve, maar het doet echt zijn werk.
SymmetricDS kan worden ingesteld om wijzigingen van het ene knooppunt naar de twee andere knooppunten te pushen, om er zo voor te zorgen dat alle drie de knooppunten dezelfde gegevens bevatten. U moet ervoor zorgen dat primaire sleutels unieke sleutels zijn en geen automatisch oplopende waarden die door de database worden toegewezen, aangezien dit hoogstwaarschijnlijk een probleem zal zijn voor de drie verschillende databases die u wilt synchroniseren.
De software installeert triggers in de database en legt wijzigingen vast wanneer INSERT, UPDATE of DELETE (en andere) bewerkingen worden uitgevoerd. Deze gegevenswijzigingen worden vervolgens aangeroepen op de andere knooppunten. De software moet op elke locatie draaien, maar heeft geen internetverbinding nodig die altijd beschikbaar is.
Ik maakte me in het begin zorgen dat triggers op al mijn tafels de prestaties zouden vertragen, maar dit was helemaal geen probleem. Ik kan niet zeggen dat we problemen met de prestaties hebben ontdekt nadat de triggers waren geïnstalleerd.
Kijk eens op http://symmetricds.org/ voor meer details.