Поделиться через


MSSQLSERVER_21879

Область применения: SQL Server

Сведения

Атрибут Значение
Название продукта SQL Server
ИД события 21879
Источник событий MSSQLSERVER
Компонент SQLEngine
Символическое имя SQLErrorNum21879
Текст сообщения Не удалось выполнить запрос к перенаправленному серверу «%s» исходного издателя «%s» и базы данных издателя «%s», чтобы определить имя удаленного сервера. Ошибка %d, сообщение об ошибке «%s».

Описание

sp_validate_redirected_publisher использует временно связанный сервер, создаваемый для подключения к перенаправленному издателю, чтобы обнаружить имя удаленного сервера. Ошибка 21879 возвращается при неудачном выполнении запроса к связанному серверу. Вызов для запроса имени удаленного сервера обычно является первым обращением ко временно связанному серверу, поэтому при наличии проблем с соединением они, скорее всего, проявятся при этом вызове. Этот удаленный вызов просто выполняет @@servername на удаленном сервере.

Связанный сервер, используемый для выполнения запроса перенаправляемого издателя, применяет режим безопасности, имя входа и пароль, заданные при вызове хранимой процедуры sp_adddistpublisher для исходного издателя.

  • Если для подключения к удаленному серверу используется проверка подлинности SQL Server (режим безопасности 0), то для подключения к удаленному серверу используются указанные имя входа и пароль.

  • Если используется проверка подлинности Windows (режим безопасности 1), то для соединения используется доверительное соединение.

    • Если хранимая процедура sp_validate_redirected_publisher явно вызывается пользователем, то для соединения используется имя входа Windows, с помощью которого пользователь вошел в систему.

    • Если sp_validate_redirected_publisher вызывается агентом репликации из sp_get_redirected_publisher, то используется связанное с агентом имя входа Windows.

Ошибка 21879 может указывать, что хранимая процедура sp_validate_redirected_publisher была вызвана с именем входа, неизвестным на перенаправленном целевом издателе.

Действие пользователя

Убедитесь, что имя входа проверки подлинности SQL Server или имя входа проверка подлинности Windows допустимо во всех репликах группы доступности и имеет достаточно авторизации для доступа к таблицам метаданных подписки (syssubscriptions и sysmergesubscriptions) в базе данных издателя.

Необходимо учитывать следующее, если ошибка 21879 возвращается из вызова хранимой процедуры sp_get_redirected_publisher, инициированного агентом репликации, который выполняется на отличном от распространителя узле, например когда агент слияния выполняется на подписчике. Если проверка подлинности Windows используется для подключения к перенаправлению издателя, SQL Server должен быть настроен для проверки подлинности Kerberos для успешной установки подключения. Если используется проверка подлинности Windows, а SQL Server не настроен для проверки подлинности Kerberos, ошибка 18456, указывающая, что сбой входа NT AUTHORITY\ANONYMOUS LOGON происходит с помощью агента слияния, работающего на подписчике. Существует три способа решения этой проблемы:

  • Настройка проверки подлинности SQL Server для Kerberos. Ознакомьтесь с проверкой подлинности Kerberos и SQL Server в электронной документации по SQL Server .

  • Используйте хранимую процедуру sp_changedistpublisher для изменения режима безопасности, связанного с исходным издателем в MSdistpublishers, а также для указания имени входа и пароля, используемых при соединении.

  • Укажите параметр командной строки BypassPublisherValidation в командной строке агента слияния, чтобы пропустить проверку при запуске sp_get_redirected_publisher на распространителе.