Always On 可用性グループに柔軟な自動フェールオーバー ポリシーを構成するConfigure a flexible automatic failover policy for an Always On availability group

適用対象: ○SQL Server XAzure SQL Database XAzure SQL Data Warehouse XParallel Data WarehouseAPPLIES TO: yesSQL Server noAzure SQL Database noAzure SQL Data Warehouse noParallel Data Warehouse

柔軟なフェールオーバー ポリシーを使用すると、可用性グループの 自動フェールオーバー を実行する条件をきめ細かく制御できます。A flexible failover policy provides granular control over the conditions that cause automatic failover for an availability group. 自動フェールオーバーを実行するエラー条件および正常性チェックの頻度を変更することで、自動フェールオーバーの確率値を増減して高可用性の SLA をサポートできます。By changing the failure conditions that trigger an automatic failover and the frequency of health checks, you can increase or decrease the likelihood of an automatic failover to support your SLA for high availability.

可用性グループの柔軟なフェールオーバー ポリシーは、そのエラー条件レベルと正常性チェックのタイムアウトしきい値によって定義されます。The flexible failover policy of an availability group is defined by its failure-condition level and health-check timeout threshold. 可用性グループがエラー条件レベルまたはその正常性チェックのタイムアウトしきい値を超えていることを検出すると、可用性グループのリソース DLL が Windows Server フェールオーバー クラスタリング (WSFC) クラスターに応答を送り返します。On detecting that an availability group has exceeded its failure condition level or its health-check timeout threshold, the availability group's resource DLL responds back to the Windows Server Failover Clustering (WSFC) cluster. その後、WSFC クラスターは、セカンダリ レプリカに対する自動フェールオーバーを開始します。The WSFC cluster then initiates an automatic failover to the secondary replica.

重要

WSFC クラスターでは、可用性グループが WSFC のエラーしきい値を超えると、自動フェールオーバーはその可用性グループに対して実行されません。If an availability group exceeds its WSFC failure threshold, the WSFC cluster will not attempt an automatic failover for the availability group. また、クラスター管理者が失敗したリソース グループを手動でオンラインにするか、データベース管理者が可用性グループの手動フェールオーバーを実行するまで、可用性グループの WSFC リソース グループはエラー状態のままになります。Furthermore, the WSFC resource group of the availability group remains in a failed state until either the cluster administrator manually brings the failed resource group online or the database administrator performs a manual failover of the availability group. WSFC のエラーしきい値 は、特定の期間に可用性グループに対して許容されるエラーの最大数として定義されています。The WSFC failure threshold is defined as the maximum number of failures supported for the availability group during a given time period. 既定の期間は 6 時間であり、この期間のエラーの最大数の既定値は n-1 です ( n は WSFC ノードの数です)。The default time period is six hours, and the default value for the maximum number of failures during this period is n-1, where n is the number of WSFC nodes. 特定の可用性グループのエラーしきい値を変更するには、WSFC フェールオーバー マネージャー コンソールを使用します。To change the failure-threshold values for a given availability group, use the WSFC Failover Manager Console.

このトピックには、次のセクションが含まれます。This topic contains the following sections:

正常性チェックのタイムアウトしきい値Health-Check Timeout Threshold

可用性グループの WSFC リソース DLL では、プライマリ レプリカをホストする SQL Server のインスタンスで sp_server_diagnostics ストアド プロシージャを呼び出して、プライマリ レプリカの 正常性チェック を実行します。WSFC resource DLL of the availability group performs a health check of the primary replica by calling the sp_server_diagnostics stored procedure on the instance of SQL Server that hosts the primary replica. sp_server_diagnostics は、可用性グループの正常性チェックのタイムアウトしきい値の 3 分の 1 の間隔で結果を返します。sp_server_diagnostics returns results at an interval that equals 1/3 of the health-check timeout threshold for the availability group. 既定の正常性チェックのタイムアウトしきい値は 30 秒であるので、 sp_server_diagnostics では 10 秒間隔で結果が返されます。The default health-check timeout threshold is 30 seconds, which causes sp_server_diagnostics to return at a 10-second interval. sp_server_diagnostics が低速であるか、情報を返さない場合、リソース DLL は正常性チェックのタイムアウトしきい値の間隔が完全に経過するのを待ってから、プライマリ レプリカが無応答であると判断します。If sp_server_diagnostics is slow or is not returning information, the resource DLL will wait for the full interval of the health-check timeout threshold before determining that the primary replica is unresponsive. プライマリ レプリカが応答しない場合、自動フェールオーバー (現在サポートされている場合) が開始されます。If the primary replica is unresponsive, an automatic failover is initiated, if currently supported.

重要

sp_server_diagnostics では、データベース レベルでの正常性チェックは実行されません。sp_server_diagnostics does not perform health checks at the database level.

エラー条件レベルFailure-Condition Level

sp_server_diagnostics から返される診断データと正常性の情報によって自動フェールオーバーが保証されるかどうかは、可用性グループのエラー条件レベルによって異なります。Whether the diagnostic data and health information returned by sp_server_diagnostics warrants an automatic failover depends on the failure-condition level of the availability group. エラー条件レベル は、自動フェールオーバーを実行するエラー条件を指定します。The failure-condition level specifies what failure conditions trigger an automatic failover. エラー条件レベルの範囲は、最も制限が緩いものから (レベル 1)、最も制限の厳しい指定 (レベル 5) まで 5 つあります。There are five failure-condition levels, which range from the least restrictive (level one) to the most restrictive (level five). 任意のレベルは、それより制限が緩いすべてのレベルを含みます。A given level encompasses the less restrictive levels. したがって、最も制限の厳しいレベル 5 にはそれより制限が緩い 4 つの条件が含まれます。以下同様です。Thus, the strictest level, five, includes the four less restrictive conditions, and so forth.

重要

破損したデータベースおよび問題があると考えられるデータベースは、すべてのエラー条件レベルで検出されません。Damaged databases and suspect databases are not detected by any failure-condition level. そのため、破損したデータベースや問題があると考えられるデータベースによって、(その原因がハードウェア障害、データ破損、またはその他の問題であるかにかかわらず) 自動フェールオーバーがトリガーされることはありません。Therefore, a database that is damaged or suspect (whether due to a hardware failure, data corruption, or other issue) never triggers an automatic failover.

次の表では、各レベルに対応するエラー条件について説明します。The following table describes the failure-conditions that corresponds to each level.

LevelLevel エラー状態Failure Condition Transact-SQLTransact-SQL の値Value PowerShell 値PowerShell Value
1One サーバーの停止。On server down. 次のいずれかが発生した場合に自動フェールオーバーを開始することを指定します。Specifies that an automatic failover is initiated when one the following occurs:

SQL ServerSQL Server サービスがダウンした。The SQL ServerSQL Server service is down.

WSFC クラスターに接続するための可用性グループのリースが、サーバー インスタンスから ACK を受信しないために期限切れになった。The lease of the availability group for connecting to the WSFC cluster expires because no ACK is received from the server instance. 詳細については、「How It Works:SQL Server Always On Lease Timeout」 (動作方法: SQL Server Always On のリース タイムアウト) を参照してください。For more information, see How It Works: SQL Server Always On Lease Timeout.



これは最も制限の緩いレベルです。This is the least restrictive level.
11 OnServerDownOnServerDown
2Two サーバーの応答停止。On server unresponsive. 次のいずれかが発生した場合に自動フェールオーバーを開始することを指定します。Specifies that an automatic failover is initiated when one of the following occurs:

SQL ServerSQL Server のインスタンスがクラスターに接続していず、可用性グループのユーザー指定の正常性チェック タイムアウトしきい値を超えた。The instance of SQL ServerSQL Server does not connect to cluster, and the user-specified health check timeout threshold of the availability group is exceeded.

可用性レプリカがエラー状態である。The availability replica is in failed state.
22 OnServerUnresponsiveOnServerUnresponsive
3Three 重大なサーバー エラー。On critical server error. 孤立したスピンロック、深刻な書き込みアクセス違反、ダンプが多すぎるなどの深刻な SQL ServerSQL Server 内部エラーが発生した場合に自動フェールオーバーを開始することを指定します。Specifies that an automatic failover is initiated on critical SQL ServerSQL Server internal errors, such as orphaned spinlocks, serious write-access violations, or too much dumping.

これは既定のレベルです。This is the default level.
33 OnCriticalServerErrorOnCriticalServerError
4Four 中程度のサーバー エラー。On moderate server error. SQL ServerSQL Server 内部リソース プールに永続的なメモリ不足の状態があるなど中程度の SQL ServerSQL Server 内部エラーが発生した場合に自動フェールオーバーを開始することを指定します。Specifies that an automatic failover is initiated on moderate SQL ServerSQL Server internal errors, such as a persistent out-of-memory condition in the SQL ServerSQL Server internal resource pool. 44 OnModerateServerErrorOnModerateServerError
5Five 任意の限定されたエラー条件。On any qualified failure conditions. 以下のような任意の限定されたエラー条件に対して自動フェールオーバーを開始することを指定します。Specifies that an automatic failover is initiated on any qualified failure conditions, including:

スケジューラ デッドロックの検出。Detection of Scheduler deadlock.

解決不可能なデッドロックが検出された。Detection of an unsolvable deadlock.



これは最も制限の厳しいレベルです。This is the most restrictive level.
55 OnAnyQualifiedFailureConditionsOnAnyQualifiedFailureConditions

注意

クライアント要求に対して SQL ServerSQL Server のインスタンスが応答しないことは、可用性グループには関係ありません。Lack of response by an instance of SQL ServerSQL Server to client requests is irrelevant to availability groups.

関連タスクRelated Tasks

自動フェールオーバーを設定するにはTo configure automatic failover

関連コンテンツRelated Content

参照See Also

AlwaysOn 可用性グループの概要 (SQL Server) Overview of Always On Availability Groups (SQL Server)
可用性モード (AlwaysOn 可用性グループ) Availability Modes (Always On Availability Groups)
フェールオーバーとフェールオーバー モード (AlwaysOn 可用性グループ) Failover and Failover Modes (Always On Availability Groups)
Windows Server フェールオーバー クラスタリング (WSFC) と SQL Server Windows Server Failover Clustering (WSFC) with SQL Server
フェールオーバー クラスター インスタンスのフェールオーバー ポリシー Failover Policy for Failover Cluster Instances
sp_server_diagnostics (Transact-SQL)sp_server_diagnostics (Transact-SQL)