Как синхронизировать базы данных на разных компьютерах в локальной сети - PullRequest
0 голосов
/ 20 февраля 2011

У меня установлено клиентское приложение на многих компьютерах, каждый компьютер подключен через локальную сеть. Каждое клиентское приложение использует свою собственную базу данных SQL. Мне нужно синхронизировать базы данных на каждом компьютере, чтобы в каждом клиентском приложении были одинаковые данные. Как я могу добиться этого с помощью VB.net (VS 2010, Winforms)

1 Ответ

0 голосов
/ 20 февраля 2011

Один способ - с таблицами очередей.Поместите триггер вставки / обновления в таблицы, чтобы перенести любые изменения в очередь.Если строка таблицы была вставлена, затем обновлена ​​дважды, то в очереди будет информация о вставке, обновлении, обновлении.Затем клиенты запрашивают изменения из очереди на основе последнего времени извлечения из очереди.Преимущество очередей в том, что нагрузка остается небольшой.У вас может быть таблица с 100 000 строк, но вы загружаете только 3 или 4 необходимых вам редактирования.

Другой способ - захватить всю таблицу.Сделайте массовую вставку к промежуточному столу.Затем выполните обновление / вставку на основе набора для обновления существующих строк, вставки новых строк.

Любое решение, которое вы придумаете, будет иметь 800-фунтовую гориллу в комнате.Это слияние.Если 2 пользователя отправляют конфликтующие данные в одну и ту же строку, возникает проблема.Вы можете уменьшить шанс, синхронизируя чаще.Таблица очередей лучше подходит для частой синхронизации, поскольку вы только синхронизируете новые правки с прошлого раза.Если вам очень повезло, природа вашего приложения заставит каждого клиента касаться только своих «собственных» данных, поэтому объединение не будет проблемой.

Вы находитесь в среде локальной сети.Просто есть 1 база данных, к которой имеют доступ все клиенты.Это традиционная модель для приложений реляционных баз данных, которая работает очень хорошо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...