sp_validate_replica_hosts_as_publishers (Transact-SQL)

適用対象:SQL Server

sp_validate_replica_hosts_as_publishers は、現在の sp_validate_redirected_publisher プライマリ レプリカだけでなく、すべてのセカンダリ レプリカを検証できるようにする拡張機能です。 sp_validate_replica_hosts_as_publisher は、Always On レプリケーション トポロジ全体を検証します。 sp_validate_replica_hosts_as_publishers ダブルホップ セキュリティ エラー (21892) を回避するには、リモート デスクトップ セッションを使用してディストリビューターで直接実行する必要があります。

Transact-SQL 構文表記規則

構文

sp_validate_replica_hosts_as_publishers
    [ @original_publisher = ] N'original_publisher'
    , [ @publisher_db = ] N'publisher_db'
    , [ @redirected_publisher = ] N'redirected_publisher' OUTPUT
[ ; ]

引数

[ @original_publisher = ] N'original_publisher'

最初にデータベースを発行した SQL Server のインスタンスの名前。 @original_publisherは sysname で、既定値はありません。

[ @publisher_db = ] N'publisher_db'

パブリッシュされるデータベースの名前。 @publisher_dbは sysname で、既定値はありません。

[ @redirected_publisher = ] N'redirected_publisher' OUTPUT

元のパブリッシャー/パブリッシュされたデータベース ペアに対して呼び出されたときのリダイレクト sp_redirect_publisher のターゲット。 @redirected_publisherは sysnameの OUTPUT パラメーターであり、既定値はありません。

リターン コードの値

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

元のパブリッシャー 'MyOriginalPublisher' のサブスクライバーの sysserver エントリがあるかどうかを判断するために、リダイレクトされたパブリッシャー 'MyReplicaHostName' で実行したクエリが、エラー '976'、エラー メッセージ 'エラー 976、レベル 14、状態 1、メッセージ: 対象になるデータベース 'MyPublishedDB' は可用性グループに参加しているため、現在クエリでアクセスできません。 データ移動が中断されているか、可用性レプリカの読み取りアクセスが有効になっていません。 このデータベースや可用性グループの他のデータベースへの読み取り専用アクセスを許可するには、グループの 1 つ以上のセカンダリ可用性レプリカへの読み取りアクセスを有効にします。 詳細については、SQL Server オンライン ブックの ALTER AVAILABILITY GROUP ステートメントを参照してください。

アクセス許可

呼び出し元は、sysadmin 固定サーバー ロールのメンバー、ディストリビューション データベースのdb_owner固定データベース ロール、またはパブリッシャー データベースに関連付けられている定義済みのパブリケーションのパブリケーション アクセス リストのメンバーである必要があります。