У нас есть транзакционная репликация между двумя 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.