現象
AlwaysOn の可用性を構成していることを前提とします。 Linux で SQL Server 2017 用の Pacemaker を使用してグループ化します。 SQL Server に接続しているときに、[断続的可用性] グループが表示されていることに気付きました。 AG ヘルパー接続がタイムアウトすると、フェールオーバーが発生します。
状態
マイクロソフトでは、この問題をこの資料の対象製品として記載されているマイクロソフト製品の問題として認識しています。
解決方法
この問題は、SQL Server の次の累積的な更新プログラムで修正されています。
SQL Server の累積更新プログラムについて:
SQL Server 用の新しい累積更新プログラムには、以前の累積的な更新プログラムに含まれていたすべての修正プログラムとすべてのセキュリティ修正が含まれています。 SQL Server の最新の累積的な更新プログラムを確認します。
詳細情報
Linux で SQL Server 2017 用の Pacemaker を使用して、可用性グループ (AG) を構成していることを前提としています。 Pacemaker AG ヘルパーリソースエージェントで、 次のクラスター構成ファイルが 強調表示されていることを検討してください。 AG helper は、接続の間隔を10秒、接続タイムアウトを30秒として、正常性チェックのために90秒のタイムアウトを監視しています。
<マスター id = "ha_cluster マスター" >
<プリミティブクラス = "ocf" id = "ha_cluster" provider = "mssql" 型 = "ag" >
<instance_attributes id="ha_cluster-instance_attributes">
<nvpair id = "ha_cluster instance_attributes-ha_name" name = "ha_name" 値 = "TEST_AG"/>
<nvpair id = "ha_cluster instance_attributes-trace_ra" name = "trace_ra" 値 = "1"/>
</instance_attributes>
<operations>
<op id = "ha_cluster-間隔-0 秒" という間隔 = "0" の場合、"差し戻し" タイムアウト = "300"/>
<op id = "ha_cluster-> 間隔-60s" interval = "60s" name = "monitor" timeout = "100"/
<op id = "ha_cluster-> 間隔-11" 間隔 = "10" 名 = "監視" ロール = "マスター" タイムアウト = "90"/
<op id = "ha_cluster 監視-間隔-12" 間隔 = "12" 名 = "モニター" ロール = "スレーブ" タイムアウト = "60"/>
<op id = "ha_cluster 通知-間隔-0 0" という間隔 = "0" の場合は "通知" タイムアウト = "60"/>
<op id = "ha_cluster-間隔-0 0" という間隔 = "0" の場合、"レベル上げ" タイムアウト = "60"/>
<op id = "ha_cluster-開始間隔-0 0" interval = "0" 名 = "start" timeout = "60"/>
<op id = "ha_cluster-interval-0 =" interval = "0" の場合、"stop" timeout = "300"/>
</operations>
<meta_attributes id="ha_cluster-meta_attributes">
<nvpair id = "ha_cluster meta_attributes-タイムアウト" name = "timeout" 値 = "30s"/>
<nvpair id = "ha_cluster meta_attributes-障害-タイムアウト" name = "エラー-タイムアウト" 値 = "60s"/>
</meta_attributes>
</primitive>
<meta_attributes id="ha_cluster-master-meta_attributes">
<nvpair id = "ha_cluster-master-meta_attributes-notify" name = "notify" 値 = "true"/>
<nvpair id = "ha_cluster-meta_attributes-trace_ra" name = "trace_ra" 値 = "1"/>
</meta_attributes>
</master>
SQL Server 2017 の累積更新プログラム 21 (CU21) より前に、sql Server に接続しているときに AG の正常性チェック接続がタイムアウトすると、降格アクションが開始されて、AG のセカンダリノードへのフェールオーバーが開始されました。
CU21 以降では、接続タイムアウトが発生した場合、AG ヘルパーリソースエージェントは90秒のモニタータイムアウトを受け入れ、2つ以上の接続を試みます。 3つの接続試行がすべて失敗した場合、AG ヘルパーリソースエージェントは、SQL Server を応答しないとして宣言し、[可用性] グループのセカンダリノードへのフェールオーバーを開始するために、レベル下げアクションを開始します。
参照情報
ソフトウェアの更新を説明するために Microsoft が使用する用語について説明 します。