分享方式:


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_get_redirected_publisher呼叫sp_validate_redirected_publisher,則會使用與代理程式相關聯的 Windows 登入。

錯誤 21879 可能表示 已使用重新導向目標發行者未知的登入來呼叫sp_validate_redirected_publisher

使用者動作

請確定 SQL Server 驗證登入或 Windows 驗證 登入在所有可用性群組複本上都有效,而且有足夠的授權可存取發行者資料庫中的訂用帳戶元數據表(syssubscriptions 和 sysmergesubscriptions)。

當錯誤 21879 從呼叫 傳回sp_get_redirected_publisher 時,有一些特殊考慮,而復寫代理程式是在散發者另一個節點上執行的復寫代理程式所起始,例如在訂閱者端執行的合併代理程式。 如果 Windows 驗證 用於重新導向發行者的連線,則必須針對成功建立連線的 Kerberos 驗證設定 SQL Server。 使用 Windows 驗證 且未設定 SQL Server 進行 Kerberos 驗證時,錯誤 18456 表示 'NT AUTHORITY\ANONYMOUS LOGON' 登入失敗,是由在訂閱者端執行的合併代理程式所接收。 有三種可能的方法可以解決此問題:

  • 設定 SQL Server 以進行 Kerberos 驗證。 請參閱 《SQL Server 在線叢書》中的 Kerberos 驗證和 SQL Server

  • 使用 sp_changedistpublisher 來變更 MSdistpublishers 中與原始發行者相關聯的安全性模式,以及指定要用於連線的登入和密碼。

  • 在合併代理程式命令行上指定命令行參數 BypassPublisherValidation,以在散發者端呼叫sp_get_redirected_publisher略過驗證。