次の方法で共有


sys.availability_replicas (Transact-SQL)

適用対象:SQL Server

Windows Server フェールオーバー クラスター (WSFC) 内の Always On 可用性グループに属する各可用性レプリカの行を返します。

クラスターがダウンしているかクォーラムが失われたなど、ローカル サーバー インスタンスが WSFC フェールオーバー クラスターに接続できない場合、 sys.availability_replicas はローカル可用性レプリカの行のみを返します。 これらの行には、メタデータにローカルにキャッシュされるデータの列のみが含まれます。

列名 データ型 説明
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 (256) データ同期のためにプライマリとセカンダリのレプリカの間の接続で使用される、ユーザー指定のデータベース ミラーリング エンドポイントの文字列表現。 エンドポイント URL の構文については、「 エンドポイント URL の指定 - 可用性レプリカの追加または変更」を参照してください。

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

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

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

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

4 = 構成のみ。 プライマリ レプリカは、可用性グループ構成メタデータをレプリカに同期的に送信します。 ユーザー データはレプリカに送信されません。

詳細については、「Always On 可用性グループの可用性モードの違い」を参照してください。

SQL Server 2017 (14.x) CU 1 以降のバージョンに適用されます。
availability_mode_desc nvarchar(60) availability_modeの説明。次のいずれかです。

ASYNCHRONOUS_COMMIT
SYNCHRONOUS_COMMIT
CONFIGURATION_ONLY

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

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

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

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

可用性レプリカが同期されていないか、まだ同期している場合は、強制フェールオーバー (データ損失の可能性あり) のみが発生する可能性があります。

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

可用性レプリカ内のすべての可用性データベースのデータベース同期の正常性のロールアップを表示するには、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 GROUP Transact-SQL ステートメントの FAILOVER_MODE オプションを使用します。
session_timeout int タイムアウト期間 (秒単位)。 タイムアウト期間は、プライマリ レプリカとセカンダリ レプリカ間の接続が失敗したことを考慮する前に、レプリカが別のレプリカからのメッセージの受信を待機する最大時間です。 セッション タイムアウトは、セカンダリがプライマリ レプリカに接続されているかどうかを検出します。

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

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

この値を変更するには、ALTER AVAILABILITY GROUP Transact-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の説明。次のいずれかです。

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

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

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

詳細については、「可用性グループのセカンダリ レプリカにサポートされているバックアップをオフロードする」を参照してください。
read_only_routing_url nvarchar (256) 読み取り専用可用性レプリカの接続エンドポイント (URL) です。 詳細については、「Always On 可用性グループの読み取り専用ルーティングの構成」を参照してください。
seeding_mode tinyint 次のいずれか:

0 = 自動
1 = マニュアル
seeding_mode_desc nvarchar(60) シード処理モードについて説明します。

AUTOMATIC
MANUAL
read_write_routing_url nvarchar (256) レプリカがプライマリである場合の接続エンドポイント (URL)。 詳しくは、「セカンダリからプライマリ レプリカへの読み取り/書き込み接続のリダイレクト (Always On 可用性グループ)」をご覧ください。

適用対象: SQL Server 2019 (15.x) 以降のバージョン。

アクセス許可

サーバー インスタンス VIEW ANY DEFINITION アクセス許可が必要です。