SQL Server 2022 分散型可用性グループにおける同期失敗
Published Jul 11 2024 04:53 AM 890 Views
Microsoft

こんにちは。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 の動作上の制限になります。

 

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

Katsuya_Ito_0-1720698753868.png

 

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

Co-Authors
Version history
Last update:
‎Sep 15 2024 11:51 PM
Updated by: