Автономная синхронизация базы данных с сервером

У нас есть архитектура клиент-сервер, в которой клиент отключается при удаленном подключении к серверу. Сервер - это, по сути, SQL Server 2008 с несколькими таблицами, каждая из которых содержит тысячи записей. Каждому клиентскому приложению (WPF) потребуется хранить реплику данных сервера для автономного использования (в SQL Express?). И в идеале, когда клиентское приложение запускается, оно будет попадать на сервер для получения новых изменений и синхронизации своей базы данных, чтобы иметь те же данные, что и на сервере (без особого взаимодействия с пользователем).

Я ищу решение, на 100% ориентированное на код, которое можно развернуть на удаленных клиентах без трудоемких процедур настройки или без вмешательства пользователя для завершения. Год назад я использовал Microsoft Sync Framework v1 и его службы синхронизации ADO.NET для обработки аналогичного сценария. Это превратилось в кошмар с реструктуризацией таблиц, написанием SPROC для любых других сценариев отслеживания изменений, и пакетная обработка тоже была болезненной. Microsoft недавно выпустила обновленную версию Sync Framework с некоторыми новыми функциями. У меня пока нет времени оценивать эти функции.

Есть ли другие инструменты / технологии для синхронизации автономных баз данных с сервером? Приветствуются образцы, документация, предложения.


person Raj    schedule 28.10.2009    source источник


Ответы (2)


Вы изучали репликацию SQL Server. Можно настроить несколько типов топологий репликации. Ваша «автономная» база данных может вводить данные в отключенной среде, а затем синхронизировать изменения с сервером, когда они становятся доступными. Это может быть выполнено с помощью заданий SQL Server или вызовов через класс .NET RMO.

person Matt    schedule 28.10.2009
comment
Привет, Мэтт, сейчас я читаю ту же тему. Есть ли хорошие ресурсы в сети? - person Raj; 28.10.2009

Я вернулся к структуре синхронизации и на этот раз использовал ее с SQL Server 2008. Результаты были лучше, и я смог предоставить функции синхронизации через WCF. См. Подробный код здесь, в SO

person Raj    schedule 08.11.2009