Проблемы
Предположим, что вы создали публикацию транзакций с помощью хранимой процедуры sp_addpublication в SQL Server 2014 или 2016, а для свойства @allow_drop задано значение true. После удаления таблицы, опубликованной в публикации, и удаления устаревшей статьи из публикации вручную может появиться сообщение об ошибке, подобное следующему:
Удаленный сервер (null) не существует.
Например, эта проблема возникает в описанной ниже ситуации.
-
Вы публикуете таблицу в публикации транзакций и устанавливаете для свойства @allow_drop значение true.
-
Вы удалите опубликованную таблицу.
-
Перед тем как агент чтения журнала обрабатывает записи, связанные с командой Drop Table, вы очищаете устаревшую статью с помощью одной из указанных ниже хранимых процедур.
-
sp_MSdropobsoletearticle
-
sp_droparticle
-
sp_droppublication
-
В этом случае следующие сообщения об ошибках регистрируются в подробном журнале:
Состояние: 0, код: 1007, текст: "процессу не удалось выполнить" sp_MSadd_replcmds "для"SQL_SERVER_INSTANCE".". Процессу не удалось выполнить "sp_MSadd_replcmds" для "SQL_SERVER_INSTANCE". Состояние агента REPL: 6Status: 0, код: 1007, текст: "удаленный сервер" (null) не существует или указан как допустимый издатель, либо у вас нет разрешения на просмотр доступных издателей. ". Состояние: 4; код: 6001, текст: ' фоновый поток для ' Command Loader ' выход. '. Состояние: 0, код: 22020, текст: "пакеты не были переданы распространителю.". Состояние: 0, код: 22037, текст: "последний шаг не записывает сообщение!".
Примечание. В SQL Server 2014 с пакетом обновления 2 (SP2) добавлена поддержка Drop Table (DROP TABLE DDL). Сведения о поддержке Drop Table можно найти в следующей статье базы знаний Майкрософт:
3170123 Поддерживает DROP TABLE DDL для статей, включенных в репликацию транзакций в SQL Server 2014
Решение
Эта проблема исправлена в перечисленных ниже накопительных обновлениях для SQL Server.
Накопительное обновление 1 для SQL server 2014 с пакетом обновления 2 (SP2), накопительное обновление 2 для SQL Server 2016
Все новые накопительные обновления для SQL Server содержат все исправления и все исправления для системы безопасности, которые были включены в предыдущий накопительный пакет обновления. Ознакомьтесь с самыми последними накопительными обновлениями для SQL Server.
Последнее накопительное обновление для SQL server 2014, Последнее накопительное обновление для SQL Server 2016
Статус
Корпорация Майкрософт подтверждает наличие этой проблемы в своих продуктах, которые перечислены в разделе "Применяется к".
Ссылки
Ознакомьтесь с терминологией , которую корпорация Майкрософт использует для описания обновлений программного обеспечения.