SQL Server 2022 分散型可用性グループにおける同期失敗

  • Thread starter Thread starter Katsuya_Ito
  • Start date Start date
K

Katsuya_Ito

こんにちは。SQL Server サポート チームです。



今回は、分散型可用性グループにおける同期が突然失敗する事象についてご紹介します。




事象

SQL Server 2022 で分散型可用性グループを構成し FILESTREAM を使用している環境において、正常に稼働していた分散型可用性グループが突如同期に失敗し、同期の状態が NOT_HEALTHY になります。



<事象発生構成>

・SQL Server 2022

・分散型可用性グループ

・FILESTREAM




原因


前提として、FILESTREAM の機能はログの順序性が重要になっています。

SQL Server 2022 より、パフォーマンス向上を目的に分散型可用性グループ間で、下記の弊社公開情報に記載している通り複数の TCP 接続を使用できるようになりました。



SQL Server 2022 の新機能により複数の TCP セッションからログを転送することで、FILESTREAM の内部的なログの順序がずれてしまうことで、同期に異常が発生することが原因です。



SQL Server 2022 (16.x) の新機能

- 可用性

https://learn.microsoft.com/ja-jp/sql/sql-server/what-s-new-in-sql-server-2022#availability

*****

分散型可用性グループ - tcp 待機時間が長いリモート リンク間のネットワーク帯域幅使用率を向上させるために、複数の TCP 接続を使用するようになりました。

*****



対処策


本事象の対処策は、トレースフラグ 5597 を設定することです。

トレースフラグ 5597 は、SQL Server 2022の新機能(分散型可用性グループにおける複数TCP使用) を無効するのみで、以前のバージョンと同等な動作となり、他への影響はありません。



変更手順


トレースフラグ 5597 の設定方法は、以下の通りです。



トレースフラグ設定方法

--------------------------------

1) SQL Server Configuration Manager (構成マネージャー)を起動します。

2) SQL Serverのサービス-> SQL Server (MSSQLSERVER もしくは インスタンス名) を右クリックし、プロパティを開きます。

3) [起動時のパラメーター] タブの[起動時のパラメーターの指定] ボックスに下記の値を入力し、[追加] をクリックします。

-T5597

medium?v=v2&px=400.png



5) [OK]をクリックし、設定を確定します。設定は、次回SQL Server サービス起動後に有効になります。

Continue reading...
 
Back
Top