Applies ToSQL Server 2019 on Windows SQL Server 2022 on Linux (all editions) SQL Server 2022 on Windows (all editions)

Проблемы

Хранимая процедура sp_replmonitorsubscriptionpendingcmds несовместима с одноранговой репликацией (P2P). Он возвращает неверное число ожидающих команд. После применения этого исправления sp_replmonitorsubscriptionpendingcmds будут совместимы с репликацией P2P.

Примечание.Вкладка  "Нераспределенные команды" монитора репликации вызывает sp_replmonitorsubscriptionpendingcmds за кулисами.

Решение

Сведения о накопительном пакете обновления

Эта проблема устранена в следующих накопительных обновлениях для SQL Server:

Примечание. После применения этого накопительного обновления sp_replmonitorsubscriptionpendingcmds может по-прежнему сообщать о неправильном количестве ожидающих выполнения команд для репликации P2P, если таблица MSrepl_originators содержит устаревшие записи.

Если таблица MSrepl_originators содержит устаревшие записи, при выполнении sp_replmonitorsubscriptionpendingcmds в журнале ошибок SQL Server будет создано следующее предупреждающее сообщение:

Предупреждение. Не удалось получить версию базы данных для базы данных подписки "<database_name>". Sp_replmonitorsubscriptionpendingcmdsможет сообщить о неправильном количестве ожидающих выполнения команд для репликации P2P.

Чтобы устранить эту проблему, удалите устаревшие записи из MSrepl_originators или передайте правильную dbversion базы данных подписки в качестве аргумента subdb_version при запуске sp_replmonitorsubscriptionpendingcmds.

Советы: Чтобы найти dbversion базы данных подписки, можно выбрать один из следующих методов:

  • Выполните следующий запрос к базе данных распространителя: select dbversion from MSrepl_originatorswhere publisher_database_id = <Publisher_Database_ID>and srvname = <Subscriber_Server>and dbname = <Subscriber_Database>Примечание. Необходимо заменить соответствующие значения <Publisher_Database_ID> , <Subscriber_Server> и <Subscriber_Database>.

  • Выполните следующий запрос к базе данных подписки: declare @current_version int , @currentGuid uniqueidentifierselect @currentGuid = recovery_fork_guidfrom sys.database_recovery_statuswhere database_id = db_id()select @current_version = substring(convert(binary(16), isnull(@currentGuid, 0x0)),1,6)print @current_version

Каждое новое накопительное обновление для SQL Server содержит все исправления и исправления безопасности, которые были в предыдущей сборке. Рекомендуется установить последнюю сборку для своей версии SQL Server:

Статус

Корпорация Майкрософт подтверждает наличие этой проблемы в своих продуктах, которые перечислены в разделе "Применяется к".

Ссылки

Сведения о терминологии , которую корпорация Майкрософт использует для описания обновлений программного обеспечения.

Нужна дополнительная помощь?

Нужны дополнительные параметры?

Изучите преимущества подписки, просмотрите учебные курсы, узнайте, как защитить свое устройство и т. д.

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