共用方式為


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 驗證且未針對 Kerberos 驗證設定 SQL Server 時,錯誤 18456 表示 'NT AUTHORITY\ANONYMOUS LOGON' 登入失敗,是由在訂閱者端執行的合併代理程式所接收。 有三種可能的方法可以解決此問題:

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

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

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