改善
Linux で SQL Server 2017 を使用していることを前提としています。一部のシナリオでは、揮発性キャッシュを使用するシステムで SQL Server でデータの損失が発生することがあります。キャッシュされたデータが安定したメディアに書き込まれる前に、電源障害などの予期しない状況が原因で、損失が発生します。このようなシナリオを回避するために、Linux の SQL Server 2017 用の累積更新プログラム 6 (CU6) には 強制フラッシュメカニズムが導入されています。記憶域サブシステムが停電を超えて永続的な書き込みを保証できない場合は、Linux で SQL Server 2017 用に CU6 を適用することをお勧めします。 この更新プログラムでは、次の機能が有効になります。
-
強制フラッシュ チェックポイントやトランザクションログの書き込みなど、データベースの書き込みアクティビティ中の動作。
-
既定では、構成設定writethrough = 1とalternatewritethrough = 1のオプションです。 これらの既定の設定により、SQL Server は、デバイスをブロックするために書き込みが durably フラッシュされることを確認できます。 代替 writethroughは、ファイルシステムに対して永続性フラッシュ要求を最適化するためのオプションです。2つの設定の詳細については、次の表を参照してください。
名前 |
既定値 |
説明 |
writethrough |
件 |
有効な値は0と1です。 1 = O_DSYNC に FILE_FLAG_WRITE_THROUGH 要求を表示します。 0 = FILE_FLAG_WRITE_THROUGH 要求の翻訳が O_DSYNC に表示されないようにします。 |
alternatewrite |
件 |
有効な値は0と1です。 1 = FILE_FLAG_WRITE_THROUGH 要求のホスト拡張機能によって最適化されたフラッシュを有効にします。ブロックデバイスの fdatasync に対する最適化 (s) をファイルに書き込みます。 0 = 代替のフラッシュ最適化を無効にします。 ファイルは O_DSYNC を使って開かれ、基になるファイルシステムは、必要な書き込みとフラッシュ要求を実行します。 注 alternatewritethrough の設定は、writethrough = 1 の場合にのみ適用されます。 |
詳細情報
詳細については、「高頻度の書き込みワークロードとデータベースファイルの配置に関する推奨事項を処理するための、 Linux の SQL Server 2017 のパフォーマンスのベストプラクティスと構成ガイドライン 」を参照してください。
書き込みO_DIRECTを保証するストレージシステムで実行されているSQL Server インストールではsafe、トレースフラグ (TF) 3979 を有効にして強制フラッシュ動作を無効にし、 alternatewritethroughとwritethroughオプションを0に設定できます。SQL Server を返します。 2017からCU6 の事前動作になります。
ノート ストレージシステムでは、デバイスに対して発行された書き込みが、システムのクラッシュ、インターフェイスのリセット、電源障害が発生しても保持されるメディアに保存されることを保証することで、キャッシュまたはステージングされた書き込みが安全で永続的であると見なされるようにすることができます。
ここでは、次のような変更を加えたファイル入出力の SQL Server の動作について詳しく説明します。
-
データベース (.mdf) ファイルとトランザクションログ (.ldf) ファイルでは、writethrough と alternatewritethrough は、強制フラッシュ 動作を使用するため、既定で CU6 に使用されません。 TF 3979 は、データベースファイルとトランザクションログファイルの 強制フラッシュ 動作を無効にし、writethrough と alternatewritethrough ロジックを使います。
-
SQL Server でFILE_FLAG_WRITE_THROUGH (データベーススナップショット、データベース一貫性チェックの内部スナップショット、プロファイラートレースファイル、拡張イベントトレースファイルなど) を使用して開かれたその他のファイルは、writethrough と alternatewritethrough の最適化を使用します。
解決方法
この更新プログラムは、SQL Server の次の累積的な更新プログラムに含まれています。
SQL Server 用の新しい累積更新プログラムには、以前の累積的な更新プログラムに含まれていたすべての修正プログラムとすべてのセキュリティ修正が含まれています。 SQL Server の最新の累積的な更新プログラムを確認します。
参照情報
ソフトウェアの更新を説明するために Microsoft が使用する 用語について説明します。