Как синхронизировать две таблицы sql-сервера из разных мест? - PullRequest
0 голосов
/ 19 марта 2012

У меня есть база данных в штаб-квартире и еще одна в филиале.Обе базы данных идентичны, все схемы одинаковы.Это может быть более одной ветви.

Например, у ветви есть локальная база данных с таблицей Sales, все транзакции будут вставлены в таблицу.Каждую ночь, когда магазин закрыт, вся информация о продажах из филиала будет синхронизироваться с базой данных HQ.Только запись, отсутствующая в базе данных HQ, будет вставлена ​​или обновлена.

Как я могу сделать это очень эффективным способом, небольшим и легким, переподключиться, когда соединение не работает, потому что пропускная способность интернета ограничена и постоянноdroping.

Как мне выполнить синхронизацию из штаб-квартиры во всех филиалах с последними продуктами и ценой?

Должен ли я написать веб-службы?

Спасибо.

Ответы [ 4 ]

3 голосов
/ 19 марта 2012

Я бы предложил репликацию SQL Server.Вам не нужно писать никакой код.

http://msdn.microsoft.com/en-us/library/ms151198.aspx

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

Обновление:

Поскольку репликация невозможна, поскольку БД развернута на клиенте, я бы использовал Sync Framework.

http://msdn.microsoft.com/en-us/sync/bb821992

Microsoft Sync Frameworkпредставляет собой комплексную платформу синхронизации, обеспечивающую совместную работу и автономность приложений, служб и устройств.Разработчики могут создавать экосистемы синхронизации, которые интегрируют любое приложение, любые данные из любого хранилища, используя любой протокол по любой сети.Sync Framework включает в себя технологии и инструменты, которые обеспечивают роуминг, совместное использование и перевод данных в автономный режим.

0 голосов
/ 30 мая 2013

Я использовал xSQL Software в прошлом и был очень доволен результатами.Вы можете копировать схему и / или данные в любом направлении или даже в обоих направлениях.

0 голосов
/ 30 мая 2013

Находятся ли два местоположения в одной локальной сети? И требуется ли, чтобы таблицы были синхронизированы только время от времени (например, ночью, а не в реальном времени)?

Если оба ответа да, то вы можете использовать утилиту командной строки sql server tablediff.exe. Он может выполнять однозначное сравнение двух таблиц и автоматически генерировать sql для вас, чтобы синхронизировать dest с источником.

Вокруг него также есть оболочка с графическим интерфейсом http://code.google.com/p/sqltablediff/, которая делает работу еще проще.

0 голосов
/ 19 марта 2012

Я пришел сюда, чтобы сказать «использовать репликацию слиянием», поскольку то, что вы описали, является более или менее учебным примером того, когда вы его реализуете.

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