Ошибка чтения журнала при добавлении узла в одноранговой репликации SQL Server - PullRequest
0 голосов
/ 11 декабря 2018

Я пытаюсь добавить еще один узел в одноранговый кластер.В текущем состоянии у меня есть 3 сервера A, B и C. Мне нужно добавить узел D с узлом A (только).Для этого я использовал следующие шаги:

  • Взял полную резервную копию с узла A
  • Скопировал ее на узел D
  • Восстановил резервную копию
  • Добавленопубликации в обоих узлах.
  • Добавлена ​​подписка для узла D в узле издателя A с sync_type 'initialize with backup'

Как только команды были запущены, программа чтения журнала в узле Aначал выдавать следующие ошибки:

  • Процесс не смог выполнить 'sp_MSadd_replcmds' на 'Узле A'.(Источник: MSSQLServer, номер ошибки: 1007) Получение справки: http://help/1007
  • Транзакции, необходимые для синхронизации подписки nosync, созданной из указанной резервной копии, недоступны на распространителе.Повторите операцию еще раз с более свежим журналом, разностным или полным резервным копированием базы данных.(Источник: MSSQLServer, номер ошибки: 1007) Получение справки: http://help/1007
  • Интерфейс IDistPut был закрыт.(Источник: MSSQL_REPL, Номер ошибки: MSSQL_REPL2000) Получение справки: http://help/MSSQL_REPL2000
  • На последнем шаге не было зарегистрировано ни одного сообщения!(Источник: MSSQL_REPL, Номер ошибки: MSSQL_REPL22037) Получение справки: http://help/MSSQL_REPL22037

Поскольку это влияло на репликацию p2p между узлами A, B и C, я удалил подписку для узла D. Это нене исправить ошибку.При дальнейшем расследовании я обнаружил, что задание Распределительная очистка все еще выполняется.Возможно, это вызвало проблему.

Теперь я просто надеюсь, что репликация p2p между уже существующими узлами A, B и C снова заработает, как это было раньше.Но все мои попытки не привели к изменениям в агенте чтения журнала.Он застрял на той же ошибке.- Процесс не может выполнить 'sp_MSadd_replcmds' на 'узле A'.(Источник: MSSQLServer, номер ошибки: 1007) Получение справки: http://help/1007 - Транзакции, необходимые для синхронизации подписки nosync, созданной из указанной резервной копии, недоступны на распространителе.Повторите операцию еще раз с более свежим журналом, разностным или полным резервным копированием базы данных.(Источник: MSSQLServer, номер ошибки: 1007) Получение справки: http://help/1007 - Интерфейс IDistPut был закрыт.(Источник: MSSQL_REPL, Номер ошибки: MSSQL_REPL2000) Получить справку: http://help/MSSQL_REPL2000 - На последнем шаге не было зарегистрировано ни одного сообщения!(Источник: MSSQL_REPL, Номер ошибки: MSSQL_REPL22037) Получение справки: http://help/MSSQL_REPL22037

Пожалуйста, сообщите о любых шагах, чтобы решить эту проблему.Спасибо

1 Ответ

0 голосов
/ 12 декабря 2018

Добавление разрешения для всех, кто сталкивался с этой проблемой в SQL 2012: мы включили поддержку MS в этом.По-видимому, их хранимая prcedure "sp_dropsubscriber" иногда пропускает некоторые таблицы.В нашем случае эта запись не была удалена из таблицы MSnosyncsubsetup.Как только они выяснили это после нескольких часов анализа, была сделана резервная копия, и строка, связанная с новым подписчиком, была удалена.Это исправило читателя журнала и репликацию гудели должным образом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...