Репликация сервера 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