圧縮ボリューム上のSQL Server データベースのサポートの説明

この記事では、圧縮ドライブでのSQL Serverのデータベース ファイル ストレージの動作について説明します。

元の製品バージョン: SQL Server
元の KB 番号: 231347

概要

SQL Serverデータベースは、SQL SERVER 2005 以降のバージョンの特別な状況を除き、NTFS または FAT 圧縮ボリュームではサポートされていません。 圧縮ボリュームでは、セクターに合わせた書き込みが保証されるわけではありません。これらは、状況によってはトランザクションの復旧を保証するために必要です。

SQL Server 2005 以降のバージョンでは、圧縮ドライブ上のデータベース ファイル ストレージは次のように動作します。

  • データ ファイルが読み取り専用ファイル グループに属している場合、ファイルは許可されます。

  • データ ファイルが読み取り専用データベースに属している場合、ファイルは許可されます。

  • トランザクション ログ ファイルが読み取り専用データベースに属している場合、そのファイルは許可されます。

  • 圧縮されたドライブ上のファイルを含む読み取り/書き込みデータベースを起動しようとすると、SQL Server次のエラーが生成されます。

    メッセージ 5118、レベル 16、状態 2、行 1 ファイル "<file_name>" は圧縮されていますが、読み取り専用データベースまたはファイル グループには存在しません。 ファイルを展開する必要があります。

SQL Server 2008 の読み取り専用データベースと読み取り専用ファイル グループの除外の詳細については、次の MSDN Web サイトを参照してください。

読み取り専用ファイル グループと圧縮

注:

このトピックは、SQL Server 2012 以降のバージョンにも適用されます。

詳細

圧縮ボリュームにSQL Serverデータベースを物理的に追加することは可能ですが、これはお勧めしません。また、サポートしていません。 この基になる理由は次のとおりです。

  • パフォーマンス

    圧縮されたボリューム上のデータベースは、パフォーマンスのオーバーヘッドを大幅に引き起こす可能性があります。 この量は、I/O のボリュームと書き込みへの読み取りの比率によって異なります。 しかし、一部の条件下では500%以上の劣化が観察された。

  • データベースの回復

    データベースの信頼性の高いトランザクション 復旧には、セクターに合わせた書き込みが必要であり、圧縮ボリュームはこのシナリオをサポートしていません。 2 つ目の問題は、内部復旧領域の管理に関する問題です。 SQL Serverは、ロールバックのためにデータベース ファイル内の事前割り当て済み領域を内部的に予約します。 圧縮ボリュームでは、事前割り当て済みファイル で領域不足 エラーを受け取る可能性があり、これは正常な復旧を妨げる可能性があります。

特定のシナリオでは、圧縮ボリュームまたは圧縮フォルダーへのSQL Serverバックアップは成功しません。 この問題が発生すると、次のいずれかのエラー メッセージが表示されます。

  • Windows Vista 以降のバージョンの Windows では

    STATUS_FILE_SYSTEM_LIMITATION ファイル システムの制限により、要求された操作を完了できませんでした
    オペレーティング システム エラー 665 (ファイル システムの制限により、要求された操作を完了できませんでした)

  • 以前のバージョンの Windows では

    要求されたサービスを完了するためにシステム リソースが不足しているSTATUS_INSUFFICIENT_RESOURCES オペレーティング システム エラー 1450 (要求されたを完了するためのシステム リソースが不足しています)、または 33 (別のプロセスがファイルの一部をロックしているため、プロセスはファイルにアクセスできません)。

この問題の詳細については、「 NTFS ボリューム内の断片化されたファイルが特定のサイズを超えて大きくなっていない可能性がある」を参照してください。

注:

  • KB 記事967351で説明されている Windows Vista 以降のバージョンの Windows の修正プログラムは、圧縮ボリュームまたは圧縮フォルダーに正常に実行されないSQL Serverバックアップの問題を解決できない可能性があります。 ただし、この修正プログラムは問題の仲介に役立ちます。
  • KB 記事 967351で説明されている修正プログラムを適用した後、パラメーターを使用して圧縮が有効になっているドライブをフォーマットする /L 必要があります。 パラメーターを使用 /L して圧縮が有効になっているドライブをフォーマットすると、ファイル レコード セグメントあたりのバイト数が 1,024 バイトから 4,096 バイトに増加します。

圧縮ボリュームへのバックアップSQL Server、ディスク領域を節約できます。 ただし、バックアップ操作中に CPU 使用率が増加する可能性があります。 データの整合性を保証するために、BACKUP チェックサム機能を使用することをお勧めします。

SQL Serverでは、「SQL Server I/O 信頼性プログラム要件」で説明されているように、システムは安定したメディアへの確実な配信をサポートする必要があります。

SQL Server データベース エンジンの入力要件と出力要件の詳細については、「Microsoft SQL Server データベース エンジン入力/出力要件」を参照してください。