Share via


sp_validate_replica_hosts_as_publishers (Transact-SQL)

sp_validate_replica_hosts_as_publisherssp_validate_redirected_publisher を拡張したもので、現在のプライマリ レプリカに加えてすべてのセカンダリ レプリカを検証できるようにします。 sp_validate_replicat_hosts_as_publisher は AlwaysOn レプリケーション トポロジ全体を検証します。 ダブルホップ セキュリティ エラー (21892) を回避するために、sp_validate_replica_hosts_as_publishers は、リモート デスクトップ セッションを使用し、ディストリビューターに対して直接実行する必要があります。

トピック リンク アイコン 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

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

レプリカ ホスト 'MyReplicaHostName' について、1 つまたは複数のパブリッシャー検証エラーが発生しました。

権限

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

関連項目

参照

レプリケーション ストアド プロシージャ (Transact-SQL)

sp_get_redirected_publisher (Transact-SQL)

sp_redirect_publisher (Transact-SQL)

sp_validate_redirected_publisher (Transact-SQL)