sys.availability_replicas (Transact-SQL)

適用対象: SQL サーバー

WSFC フェールオーバー クラスター内の AlwaysOn 可用性グループに属している各可用性レプリカに対する行を返します。

たとえばクラスターがダウンしたりクォーラムが失われたりしたために、ローカル サーバー インスタンスが WSFC フェールオーバー クラスターと通信できない場合は、ローカル可用性レプリカの行だけが返されます。 これらの行には、メタデータ内にローカルにキャッシュされているデータの列だけが含まれます。

列名 データ型 説明
replica_id uniqueidentifier レプリカの一意の ID。
group_id uniqueidentifier レプリカが属する可用性グループの一意の ID。
replica_metadata_id int データベース エンジンの可用性レプリカのローカル メタデータ オブジェクトの ID。
replica_server_name nvarchar (256) このレプリカをホストし、既定ではないインスタンスの場合はレプリカのインスタンス名もホストしている、 SQL Server のインスタンスのサーバー名。
owner_sid varbinary(85) このサーバー インスタンスに登録されている、この可用性レプリカの外部所有者のセキュリティ ID (SID)。

ローカル以外の可用性レプリカの場合は NULL。
endpoint_url nvarchar(128) データ同期のためにプライマリとセカンダリのレプリカの間の接続で使用される、ユーザー指定のデータベース ミラーリング エンドポイントの文字列表現。 エンドポイント URL の構文の詳細については、「可用性レプリカを追加または変更する場合のエンドポイント URL の指定 (SQL Server)」を参照してください。

NULL = WSFC フェールオーバー クラスターと通信できません。

このエンドポイントを変更するには、ALTER AVAILABILITY GROUPTransact-SQL ステートメントのENDPOINT_URL オプションを使用します。
availability_mode tinyint レプリカの可用性モード。次のいずれかです。

0 |非同期コミット。 プライマリ レプリカは、セカンダリがログをディスクに書き込むのを待機することなくトランザクションをコミットできます。

1 |同期コミット。 プライマリ レプリカは、セカンダリ レプリカがトランザクションをディスクに書き込むまで、特定のトランザクションのコミットを待機します。

4 |構成のみ。 プライマリ レプリカは、可用性グループ構成メタデータをレプリカに同期的に送信します。 ユーザー データはレプリカに送信されません。 SQL Server 2017 CU1 以降で使用できます。

詳細については、「可用性モード (Always On 可用性グループ)」を参照してください。
availability_mode_desc nvarchar(60) availability_modeの説明。次のいずれかです。

ASYNCHRONOUS_COMMIT

SYNCHRONOUS_COMMIT

CONFIGURATION_ONLY

可用性レプリカの可用性モードを変更するには、ALTER AVAILABILITY GROUPTransact-SQL ステートメントのAVAILABILITY_MODEオプションを使用します。

レプリカの可用性モードをCONFIGURATION_ONLYに変更することはできません。 CONFIGURATION_ONLY レプリカをセカンダリ レプリカまたはプライマリ レプリカに変更することはできません。
failover_mode tinyint 可用性レプリカの フェールオーバー モード 。次のいずれかです。

0 |自動フェールオーバー。 レプリカは、自動フェールオーバーの潜在的なターゲットです。 自動フェールオーバーは、可用性モードが同期コミット (availability_mode = 1) に設定されていて、可用性レプリカが現在同期されている場合にのみサポートされます。

1 |手動フェールオーバー。 手動フェールオーバーに設定されたセカンダリ レプリカへのフェールオーバーは、データベース管理者が手動で開始する必要があります。 実行されるフェールオーバーの種類は、次のようにセカンダリ レプリカが同期されているかどうかによって異なります。

可用性レプリカが同期していない場合、またはまだ同期を行っている場合は、強制フェールオーバーのみが可能です (データが失われる可能性があります)。

可用性モードが同期コミット (availability_mode = 1) に設定されていて、可用性レプリカが現在同期されている場合は、データ損失のない手動フェールオーバーが発生する可能性があります。

可用性レプリカ内のすべての可用性データベースのデータベース同期の正常性のロールアップを表示するには、sys.dm_hadr_availability_replica_states動的管理ビューのsynchronization_health列とsynchronization_health_desc列を使用します。 ロールアップでは、各可用性データベースの同期状態と、その可用性レプリカの可用性モードが考慮されます。

注: 特定の可用性データベースの同期の正常性を表示するには、sys.dm_hadr_database_replica_states動的管理ビューのsynchronization_state列とsynchronization_health列に対してクエリを実行します。
failover_mode_desc nvarchar(60) failover_modeの説明。次のいずれかです。

MANUAL

AUTOMATIC

フェールオーバー モードを変更するには、ALTER AVAILABILITY GROUPTransact-SQL ステートメントのFAILOVER_MODE オプションを使用します。
session_timeout int タイムアウト時間 (秒単位)。 タイムアウト時間は、レプリカが別のレプリカからのメッセージの受信を待機する最大時間です。この時間を過ぎると、プライマリ レプリカとセカンダリ レプリカの間の接続は障害があるものと見なされます。 セッション タイムアウトは、セカンダリ レプリカがプライマリ レプリカに接続されているかどうかを検出します。

セカンダリ レプリカとの接続が確立されていないことを検出すると、プライマリ レプリカはセカンダリ レプリカが NOT_SYNCHRONIZED であるものと判断します。 プライマリ レプリカとの接続が確立されていないことを検出すると、セカンダリ レプリカは単に再接続を試みます。

注: セッション タイムアウトでは、自動フェールオーバーは発生しません。

この値を変更するには、ALTER AVAILABILITY GROUPTransact-SQL ステートメントのSESSION_TIMEOUTオプションを使用します。
primary_role_allow_connections tinyint 可用性がすべての接続を許可するか、読み取り/書き込み接続のみを許可するかに関係なく、次のいずれかになります。

2 = すべて (既定値)

3 = 読み取り書き込み
primary_role_allow_connections_desc nvarchar(60) primary_role_allow_connectionsの説明。次のいずれかです。

ALL

READ_WRITE
secondary_role_allow_connections tinyint セカンダリ ロールを実行している (つまりセカンダリ レプリカとして機能している) 可用性レプリカがクライアントからの接続を受け入れることができるかどうか。以下のいずれかです。

0 = いいえ。 セカンダリ レプリカのデータベースに対する接続は許可されず、データベースに対して読み取りアクセスを実行できません。 これが既定の設定です。

1 = 読み取り専用。 セカンダリ レプリカのデータベースに対しては読み取り専用接続だけが許可されます。 レプリカ内のすべてのデータベースは読み取りアクセスで利用できます。

2 = すべて。 読み取り専用アクセスに限り、セカンダリ レプリカのデータベースに対するすべての接続が許可されます。

詳細については、「アクティブなセカンダリ: 読み取り可能なセカンダリ レプリカ (Always On 可用性グループ)」を参照してください。
secondary_role_allow_connections_desc nvarchar(60) secondary_role_allow_connectionsの説明。次のいずれかです。

使用不可

READ_ONLY

ALL
create_date datetime レプリカが作成された日付。

NULL = このサーバー インスタンス上にないレプリカ。
modify_date datetime レプリカが最後に変更された日付。

NULL = このサーバー インスタンス上にないレプリカ。
backup_priority int 同じ可用性グループ内の他のレプリカと比較して、このレプリカでバックアップを実行する優先順位を表す、ユーザー指定の値。 値は 0 ~ 100 の範囲の整数です。

詳細については、「アクティブなセカンダリ: セカンダリ レプリカでのバックアップ (Always On 可用性グループ)」を参照してください。
read_only_routing_url nvarchar (256) 読み取り専用可用性レプリカの接続エンドポイント (URL) です。 詳細については、可用性グループの読み取り専用ルーティングの構成 (SQL Server) に関する記事を参照してください
read_write_routing_url nvarchar (256) SQL Server 2019 (15.x) 以降。 レプリカがプライマリである場合の接続エンドポイント (URL)。 詳しくは、「セカンダリからプライマリ レプリカへの読み取り/書き込み接続のリダイレクト (Always On 可用性グループ)」をご覧ください。
seeding_mode tinyint 次のいずれか:

0: 自動

1: 手動
seeding_mode_desc nvarchar(60) シード処理モードについて説明します。

AUTOMATIC

MANUAL

セキュリティ

アクセス許可

サーバー インスタンスに対する VIEW ANY DEFINITION 権限が必要です。

参照