Проблема репликации (распространение с подписчиком) в SQL SERVER 2008 R2 - PullRequest
1 голос
/ 15 декабря 2010

У нас есть транзакционная репликация между двумя MS SQL Server 2008 R2.

Наши серверы были перезагружены из-за сбоя жесткого диска.
Репликация автоматически продолжала работать. Но через час после того, как мы получили такую ​​ошибку:

   The subscription(s) have been marked inactive and must be reinitialized. NoSync subscriptions will need to be dropped and recreated.

Агент чтения журнала работает и отправляет транзакции дистрибьютору. Но дистрибьютор перестал синхронизироваться с подписчиком.

Также Абоненту разрешено отправлять изменения дистрибьютору. Все конфликты разрешены дистрибьютором.

Мы хотим знать, если это еще один способ заставить репликацию работать, кроме повторной инициализации подписки?

Мы обнаружили, что эта ошибка, вероятно, не при сбое диска.
Мы добавили новые внешние ключи:

Так было:

Publisher  Table1 Table2 Table3
Subscriber Table1 Table2 Table3

Table1 и Table2 были в репликации. Table3 - нет.
Мы добавили внешний ключ Table2_Table3 для каждого - издателя и подписчика.

И после этого мы начали получать ошибки, как мы описали в нашем комментарии к ответу @Remus Rusanu.

1 Ответ

0 голосов
/ 16 декабря 2010

Какую ошибку сообщил агент дистрибьютора? Ошибка будет видна в деталях подписки монитора репликации. Вы также можете найти ошибку самостоятельно в MSrepl_errors:

содержит строки с расширенными Агент распространения и агент слияния информация о сбое. Эта таблица хранится в базе данных распространения.

...