適用先
SQL Server 2014 Developer SQL Server 2014 Enterprise SQL Server 2014 Standard SQL Server 2012 Enterprise SQL Server 2012 Developer SQL Server 2012 Standard SQL Server 2016 Enterprise Core SQL Server 2016 Standard SQL Server 2016 Developer SQL Server 2016 Enterprise SQL Server 2016 Web SQL Server 2016 Express

この修正プログラムを適用した後、512 バイトの物理セクター サイズを持つすべてのサーバーまたはレプリカでスタートアップ パラメーターとしてトレース フラグ 1800 を有効にし、再起動して、この修正プログラムを正常に動作させる必要があります。

現象

次のような状況で問題が発生します。

  • Microsoft SQL Serverで AlwaysOn 可用性グループまたは Logshipping 機能を有効にします。

  • AlwaysOn 可用性グループ (AG) のプライマリ レプリカとセカンダリ レプリカのログ ファイルを格納するディスクのセクター サイズは異なります。 または、Logshipping 環境では、Logshipping プライマリ サーバーと Logshipping セカンダリ サーバーのログ ファイルを格納するディスクのセクター サイズは異なります。 以下に例を示します。

    • プライマリ レプリカ ログ ファイルは、セクター サイズが 512 バイトのディスクにあります。 ただし、セカンダリ レプリカ ログ ファイルは、セクター サイズが 4 KB (KB) のディスク上にあります。

    • プライマリ レプリカ ログ ファイルは、セクター サイズが 512 バイトのオンプレミスのローカル システムにあります。 ただし、セカンダリ レプリカは、セクター サイズが 4 KB (KB) の Windows Azure Storage ディスク上にあります。

このシナリオでは、次のエラー メッセージが SQL Server エラー ログに記録されます。 サーバーを再起動する前にセカンダリに適用されていないログがあった場合、再起動後もしばらくエラー メッセージが続く可能性があります。

同期 IO にフォールバックする必要がある X のずれしたログ IO がありました。 現在の IO はファイル ...にあります。

さらに、AG または Logshipping 同期は、同期 I/O が原因で非常に遅く実行されます。 セカンダリ レプリカが Windows Azure Storage にある場合、同期プロセスを完了するのに予想よりもはるかに長い時間がかかります。注 この問題は、4 KB のセクター サイズを持つ新しいドライブと、512 バイトのセクター サイズを持つ古いドライブの両方を使用する場合に発生します。 新しいドライブの詳細については、「SQL Server - 新しいドライブ 4K セクター サイズSQL Server-記憶域スペース/VHDx と 4K セクター サイズを使用する」を参照してください。

SQL Serverの各新しい累積的な更新プログラムには、すべての修正プログラムと、以前の累積的な更新プログラムに含まれていたすべてのセキュリティ修正プログラムが含まれています。 SQL Serverの最新の累積的な更新プログラムを参照してください。

回避策 

この問題を回避するには、移動先のトランザクション ログ ファイルを、 物理セクターあたりのバイト数 が 512 バイトに設定されているドライブに移動します。

状態

マイクロソフトでは、この問題をこの資料の対象製品として記載されているマイクロソフト製品の問題として認識しています。

詳細情報

ベスト プラクティスとして、すべてのレプリカ上のすべてのディスク (少なくともログ ファイルをホストするすべてのディスク) のセクター サイズが同じであることを確認してください。 セカンダリに 512 バイトの物理セクターがあり、プライマリのセクター サイズが 4 KB である混合環境では、TF 1800 は、512 バイトの物理セクター サイズを持つすべてのサーバーまたはレプリカのスタートアップ フラグとして使用し、再起動する必要があります。 これにより、進行中のログ作成形式で 4 KB のセクター サイズが使用されます。より大きなセクター サイズSQL Serverのしくみの詳細については、サポート ブログの次の投稿を参照してください:SQL Server-記憶域スペース/VHDx と 4K セクター サイズFsutil コマンド プロンプト ユーティリティを使用して、物理セクターあたりのバイト数の値を決定できます。 このパラメーターが出力に表示されない場合は、 KB アーティクル 982018で指定されている修正プログラムを適用する必要があります。お持ちのドライブの種類を確認するには、次の手順に従います。

  1. 管理者特権のコマンド プロンプトで次のコマンドを実行します。

    Fsutil fsinfo ntfsinfo x: 注 x プレースホルダーは、確認するドライブを表します。

  2. [ セクターあたりのバイト数] と [ 物理セクターあたりのバイト数] の値を使用して、使用しているドライブの種類を決定します。 これを行うには、次の表を使用します。

    "セクターあたりのバイト数" 値

    "物理セクターあたりのバイト数" 値

    ドライブの種類

    4096

    4096

    4K ネイティブ

    512

    4096

    Advanced Format (512E とも呼ばれます)

    512

    512

    512 バイトネイティブ

ヘルプを表示

その他のオプションが必要ですか?

サブスクリプションの特典の参照、トレーニング コースの閲覧、デバイスのセキュリティ保護方法などについて説明します。