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) を回避するには、リモート デスクトップ セッションを使用してディストリビューターで直接実行する必要があります。
構文
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 固定データベース ロール、またはパブリッシャー データベースに関連付けられている定義済みのパブリケーションのパブリケーション アクセス リストのメンバーである必要があります。