BUG #: 147332 (コンテンツ管理)VSTS: 699009
マイクロソフトは、Microsoft SQL Server 2008 の R2 を配布して、または Microsoft SQL Server 2008 の修正プログラムを 1 つのダウンロード可能なファイルとして。修正プログラムは累積的であるため、新しいリリースごとにすべての修正プログラムが含まれていて、以前の SQL Server 2008 R2 または SQL Server 2008 に含まれていたすべてのセキュリティ修正プログラムの更新プログラムのリリースします。
現象
Microsoft SQL Server の 2008 R2 または Microsoft SQL Server 2008 がデータベースのデータ ファイルとしてマークスパース物理ファイルがファイル システムにありませんスパースとしてマークされている場合でも。
注:
-
データベースのデータ ファイルはスパースでは、SQL Server のメタデータとしてマークされているかどうかを決定するには、次のステートメントを実行して、 Is_Sparse列が結果セットに 0 以外の値に設定されているかどうかを確認します。
Use
<database name>select is_sparse , physical_name from sys.database_files
-
ファイル ・ システムの物理ファイルのステータスのクエリを実行するには、データベースがオフラインにした後 Windows の次のコマンドを実行します。
fsutil sparse queryflag
<files path>\<database file>
次の出力を受信した場合、ファイルに設定されてスパースファイル ・ システムで。
このファイルはスパースに設定されています。
-
SQL Server のメタデータとファイル システム メタデータの両方は、低密度のデータベース スナップショットの一部であるデータベースのデータ ファイルに対してのみとしてマークする必要があります。
原因
この問題は、マークするので、ファイル ・ システム正しくありませんスパースとしてデータベース全体のデータ ファイル別のストリームをスパースが削除されるようにマークされた最初の後に発生します。DBCC CHECKDBコマンドが終了したときに、別のストリームが削除されます。
注:
-
内部データベース スナップショットの使用率は、 DBCC CHECKDBの一連のコマンドで使用される NTFS 機能です。DBCCコマンドを実行するとデータベース エンジンはデータベース スナップショットの代替のストリームを作成し、トランザクションの整合性の取れた状態にします。DBCCコマンドでは、別のストリームに対してチェックを実行します。DBCCコマンドが終了した後、別のストリームは破棄されます。
-
この問題の原因となるデザインは、データベース ファイルをバックアップするのには Windows のボリューム ・ レベルのバックアップを使用する、Windows Server 2003 で導入されました。SQL Server のメタデータは、システム テーブル内のデータ ファイルのスパース属性のコピーを格納します。ただし、sparse 属性がファイル システムから削除された後、SQL Server は、 Is_Sparse情報を更新できません。
-
この問題は、Windows Server 2003 から Windows オペレーティング システムの新しいバージョンにデータベースを移行した後にも発生します。
などの Windows Server 2008 または Windows Server 2008 R2 に、Windows Server 2003 からデータベースを移行します。
解決策
SQL Server 2008 R2 または SQL Server 2008 では、この問題を解決するには、以下の修正プログラムを適用し、データベースをオンラインします。データベースがオンラインになると、SQL Server は、物理データベース ファイルのメタデータがファイル システムでスパースとしてマークされているかどうかをチェックします。ありませんスパースとしてマークされている場合は、SQL Server のメタデータが更新されます。