Отфильтрованная репликация слиянием SQL Server 2008 - PullRequest
1 голос
/ 12 марта 2012

Я ищу совет о том, как добиться двунаправленной репликации, которая реплицирует только определенные строки в SQL Server 2008.

Например, я хотел бы реплицировать таблицу A между двумя базами данных (Европа иАзия).Я хотел бы, чтобы таблица содержала как локальные, так и общие данные.Это можно указать с помощью поля «регион» со значениями

  1. Глобальный
  2. Европа
  3. Азия

Я имеюнастроить репликацию слиянием, при этом Европа является издателем, а Азия подписчиком и фильтром

WHERE region = 1

, пытаясь реплицировать только строки с регионом = 1

Добавление global строк в БД Европы или Азии прекрасно работает со строками, фигурирующими в противоположной таблице.

Добавление Европы строк в БД Европы прекрасно работает, если не выполнять репликацию в БД Азии (по желанию)

Добавление строк Asia в базу данных Asia, однако не выполняет то, что я хочу, поскольку строка реплицируется в базу данных Europe и удаляется из базы данных Asia.

Я понимаю, почему это относится к отношениям издатель / подписчик, но это разочаровывает.

Тогда я подумал, что решение может быть одноранговым, но я не могу фильтровать одноранговые.

Есть ли способ достичь того, что я ищу?

Спасибо всем

Ответы [ 2 ]

1 голос
/ 29 августа 2013

Я думаю, что вы должны использовать динамический фильтр.Когда вы создаете фильтр, вы можете вводить более сложные запросы после предложения WHERE.Вы можете увидеть этот учебник, он на испанском, но вы можете увидеть запрос.http://www.monografias.com/trabajos97/guia-crear-replica-mezcla-filtros-dinamicos-parametrizados-sql-server/guia-crear-replica-mezcla-filtros-dinamicos-parametrizados-sql-server.shtml

1 голос
/ 12 марта 2012

Лучший способ справиться с этим - использовать третий экземпляр для публикации данных, которые содержат данные по всему миру, Европе и Азии. Используйте публикацию слиянием, используя параметризованные фильтры строк , которые фильтруют на основе HOST_NAME и региона 1. Настройте подписки для Европы и Азии, переопределяющие значение HOST_NAME () для каждого.

Таким образом, подписки для Европы и Азии получают только глобальные и региональные данные.

...