MySQL-Datenbank lokal und remote mit C# synchronisieren

MySQL-Datenbank lokal und remote mit C# synchronisieren

Ich habe das hier gepostet, weil es eher eine Frage zu MySQL als zu C# ist. Ich habe eine Software geschrieben, die beim ersten Start eine lokale Instanz von MySQL ausführt. Wenn MySQL jetzt läuft, möchte ich die Daten zwischen der Remote-Datenbanktabelle und der lokalen Datenbanktabelle, die von der Software ausgeführt wird, synchronisieren (es sollten keine anderen Datenbanken/Tabellen synchronisiert werden, da es viele sind).

Ich habe eine Replikation eingerichtet, um die gesamte Datenbank mit einem anderen Server zu synchronisieren. Das funktioniert, solange der Server nicht ausfällt. Dann fährt er nie wieder hoch. Aus diesem Grund glaube ich nicht, dass die Replikation funktionieren wird, da beim Schließen der Software auch MySQL geschlossen wird.

Was wäre also die beste Methode zum Synchronisieren der Remote- und lokalen Datenbanken?

Antwort1

Sie können die MySQL-Master/Slave-Replikation möglicherweise zum Laufen bringen, indem Sie die Timeouts anpassen und die Befehle „STOP SLAVE“ und „START SLAVE“ erneut ausführen. In der Slave-Konfigurationsdatei können Sie „slave-net-timeout“ auf die Anzahl der Sekunden einstellen, nach deren Ablauf die Verbindung als unterbrochen betrachtet wird, und „master-connect-retry“ auf die Anzahl der Sekunden einstellen, die zwischen den Verbindungsversuchen vergehen sollen. Beide sind auf 86400 Sekunden oder 1 Tag eingestellt. Sie können es beispielsweise mit 30 Sekunden wie folgt versuchen:

slave-net-timeout = 30
master-connect-retry = 30

Eine Alternative besteht darin, eine Lösung wie diese auszuprobieren.SymmetricDS-Datenbanksynchronisierungoder Tungsten. Ich habe SymmetricDS in Situationen verwendet, in denen das Netzwerk langsam oder zeitweise sogar nicht verfügbar war, und es wird automatisch wiederhergestellt. Es kann als eigenständiger Replikationsserver ausgeführt oder in eine Anwendung eingebettet und von dort aus gesteuert werden.

verwandte Informationen