圧縮ボリュームでの 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 サイトを参照してください。
Note
このトピックは、SQL Server 2012 以降のバージョンにも適用されます。
詳細
圧縮ボリュームに SQL Server データベースを物理的に追加することは可能ですが、これはお勧めしません。また、サポートされていません。 その根本的な理由は次のとおりです。
パフォーマンス
圧縮ボリューム上のデータベースでは、パフォーマンスのオーバーヘッドが大きくなる可能性があります。 この量は、I/O の量と書き込みへの読み取りの比率によって異なります。 しかし、いくつかの条件下で500%以上の低下が観察された。
データベースの回復
データベースの信頼性の高いトランザクション復旧にはセクターアライン書き込みが必要であり、圧縮ボリュームではこのシナリオはサポートされません。 2 つ目の問題は、内部復旧領域の管理に関する問題です。 SQL Server は、ロールバックのためにデータベース ファイルに事前に割り当てられた領域を内部的に予約します。 圧縮ボリュームでは、事前割り当て済みファイルで Out of Space エラーを受け取る可能性があり、これにより正常な回復が妨げられます。
特定のシナリオでは、圧縮ボリュームまたは圧縮フォルダーへの SQL Server バックアップが成功しません。 この問題が発生すると、次のいずれかのエラー メッセージが表示されます。
Windows Vista 以降のバージョンの Windows の場合
STATUS_FILE_SYSTEM_LIMITATION ファイル システムの制限により、要求された操作を完了できませんでした
オペレーティング システム エラー 665 (ファイル システムの制限により、要求された操作を完了できませんでした)以前のバージョンの Windows では
要求されたサービスを完了するためにシステム リソースが不足しているSTATUS_INSUFFICIENT_RESOURCESオペレーティング システム エラー 1450 (要求された処理を完了するにはシステム リソースが不足しています。または 33 (別のプロセスがファイルの一部をロックしているため、プロセスはファイルにアクセスできません)。
この問題の詳細については、「 NTFS ボリューム内の大量に断片化されたファイルは、特定のサイズを超えて拡張されない可能性がありますを参照してください。
Note
- KB 記事で説明されている Windows Vista 以降のバージョンの Windows の修正プログラム 967351 、圧縮ボリュームまたは圧縮フォルダーに正常に実行されない SQL Server バックアップの問題を解決できない場合があります。 ただし、この修正プログラムは問題の仲介に役立ちます。
- サポート技術情報の記事 967351で説明されている修正プログラムを適用した後、
/L
パラメーターを使用して圧縮を有効にするドライブをフォーマットする必要があります。/L
パラメーターを使用して圧縮を有効にするドライブをフォーマットすると、ファイル レコード セグメントあたりのバイト数が 1,024 バイトから 4,096 バイトに増加します。
圧縮ボリュームへの SQL Server バックアップにより、ディスク領域を節約できます。 ただし、バックアップ操作中に CPU 使用率が増加する可能性があります。 データの整合性を保証するには、常に BACKUP チェックサム機能を使用することをお勧めします。
SQL Server では、「 SQL Server I/O 信頼性プログラムの要件で説明されているように、安定したメディアへの確実な配信をサポートするシステムが必要です。
SQL Server データベース エンジンの入力と出力の要件の詳細については、「Microsoft SQL Server データベース エンジン入力/出力の要件」を参照してください。