Синхронизация базы данных MySQL с локальной и удаленной с помощью c#

Синхронизация базы данных MySQL с локальной и удаленной с помощью c#

Я разместил это здесь, поскольку это больше вопросы по MySQL, чем по C#. Я написал программное обеспечение, которое запускает локальный экземпляр MySQL при первом запуске. Теперь, когда MySQL запущен, я хотел бы синхронизировать данные между удаленной таблицей базы данных и локальной таблицей базы данных, которую запускает программное обеспечение (оно не должно синхронизировать какие-либо другие базы данных/таблицы, поскольку их много).

У меня настроена репликация для синхронизации всей базы данных с другим сервером, которая работает, если только сервер не выйдет из строя, после чего он уже не запустится. Исходя из этого, я не думаю, что репликация будет работать, поскольку при закрытии программного обеспечения закрывается и MySQL.

Какой же метод синхронизации удаленной и локальной баз данных будет наилучшим?

решение1

Вы можете заставить работать репликацию MySQL master/slave, отрегулировав тайм-ауты и повторно выполнив команды "STOP SLAVE" и "START SLAVE". В файле конфигурации slave вы можете установить slave-net-timeout на количество секунд, по истечении которых соединение будет считаться разорванным, а master-connect-retry на количество секунд, в течение которых он должен делать паузу между попытками повторного подключения. Оба значения установлены на 86400 секунд или 1 день. Например, вы можете попробовать 30 секунд следующим образом:

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

Альтернативой является попытка решения, напримерСинхронизация базы данных SymmetricDSили Tungsten. Я использовал SymmetricDS в ситуациях, когда сеть была медленной или даже недоступной время от времени, и она восстанавливалась автоматически. Она может работать как автономный сервер репликации или может быть встроена и управляться из приложения.

Связанный контент