sp_validate_replica_hosts_as_publishers (Transact-SQL)

sp_validate_replica_hosts_as_publisherssp_validate_redirected_publisher 的擴充,可允許所有次要複本進行驗證,而不只是目前的主要複本。 sp_validate_replicat_hosts_as_publisher 會驗證整個 AlwaysOn 複寫拓撲。 sp_validate_replica_hosts_as_publishers 必須使用遠端桌面工作階段直接在散發者端執行,以免發生雙躍點安全性錯誤 (21892)。

主題連結圖示 Transact-SQL 語法慣例

語法

sp_validate_replica_hosts_as_publishers 
    [ @original_publisher = ] 'original_publisher',
    [ @publisher_db = ] 'database_name', 
    [ @redirected_publisher = ] 'new_publisher' output

引數

  • [ @original_publisher = ] 'original_publisher'
    當初發行資料庫的 SQL Server 執行個體名稱。 original_publisher 是 sysname,沒有預設值。

  • [ @publisher_db = ] 'publisher_db'
    要發行的資料庫名稱。 publisher_db 是 sysname,沒有預設值。

  • [ @redirected_publisher = ] 'redirected_publisher'
    針對原始發行者/已發行的資料庫配對呼叫 sp_redirect_publisher 時的重新導向目標。 redirected_publisher 是 sysname,沒有預設值。

傳回碼值

0 (成功) 或 1 (失敗)

結果集

無。

備註

如果發行者和發行資料庫沒有項目存在,sp_validate_redirected_publisher 會在輸出參數 @redirected\_publisher 中傳回 null。 否則會在成功和失敗時都傳回相關聯且重新導向的發行者。

如果驗證成功,sp_validate_redirected_publisher 會傳回成功指示。

如果驗證失敗,則會引發適當的錯誤。 sp_validate_redirected_publisher 會盡全力來引發所有問題,而不只是初次遇到的問題。

[!附註]

在驗證不允許讀取存取或需要指定讀取意圖的次要複本主機時,sp_validate_replica_hosts_as_publishers 會失敗並發生下列錯誤。

訊息 21899,層級 11,狀態 1,程序 sp_hadr_verify_subscribers_at_publisher,行 109

在重新導向的發行者 'MyReplicaHostName' 上用以判斷原始發行者 'MyOriginalPublisher' 的訂閱者是否有 sysserver 項目之查詢失敗,發生錯誤 '%3!s!',錯誤訊息為「錯誤 976,層級 14,狀態 1,訊息: 目標資料庫 'MyPublishedDB' 正參與可用性群組,目前無法供查詢存取。 資料移動已暫停,或者可用性複本無法進行讀取存取。 若要允許唯讀存取可用性群組中的這個資料庫和其他資料庫,請啟用群組中一個或多個次要可用性複本的讀取存取。 如需詳細資訊,請參閱《SQL Server 線上叢書》中的<ALTER AVAILABILITY GROUP 陳述式>」。

複本主機 'MyReplicaHostName' 發生了一個或多個發行者驗證錯誤。

權限

呼叫端必須是系統管理員 (sysadmin) 固定伺服器角色的成員、散發資料庫的 db_owner 固定資料庫角色或是與發行者資料庫相關聯之已定義發行集的發行集存取清單的成員。

請參閱

參考

複寫預存程序 (Transact-SQL)

sp_get_redirected_publisher (Transact-SQL)

sp_redirect_publisher (Transact-SQL)

sp_validate_redirected_publisher (Transact-SQL)