Репликация сервера SQL поверх репликации

У меня есть следующий сценарий:

-Server 1 имеет базу данных data_server1 и публикацию транзакций (через Интернет) под названием TANS_PUB (статья 9 таблиц)

-Server 2 является подписчиком TANS_PUB и имеет локальную базу данных "data_server2"

Примечание: data_server1 и data_server2 имеют одинаковую структуру (схему) и транс-репликация работает очень хорошо

Теперь на сервере server2 я создал публикацию слиянием (через Интернет и для всех таблиц в виде статей) под названием MERG_PUB, и я делаю server1 подписчиком. Этот паб слияния находится от data_server2 до data_server1_2 на сервере server1. эта репликация также работает очень хорошо.

проблема заключается в том, что если одна из 9 таблиц (на сервере 1) (например, TAB1) обновляется вручную или программой, TAB1 на сервере 2 обновляется (с помощью репликации на основе TANS_PUB), но TAB1 в data_server1_2 (сервер 1) не обновляется:-( (в этом случае MERG_PUB не работает), обратите внимание, если я обновляю TAB1 в server2 вручную или с помощью программы TAB1 в data_server1_2 (server1), хорошо обновляется!!!!!

Можете ли вы помочь, пожалуйста????

1000 спасибо

1 ответ

Решение

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

Чтобы устранить эту проблему, задайте для свойства статьи слияния @published_in_tran_pub значение true для всех статей слияния, участвующих в публикации транзакций.

USE MergePublicationDB

EXEC sp_changemergearticle 
  @publication = 'MergePublicationName',
  @article = 'MergeArticleName', 
  @property = N'published_in_tran_pub', 
  @value = N'true'
GO
Другие вопросы по тегам