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 на распространителе.