Microsoft では、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 列がゼロ以外の値に設定されているかどうかをチェックします。
用途
<データベース名>
[is_sparse] を選択し、[sys.database_files からphysical_name] を選択しますファイル システム内の物理ファイルの状態を照会するには、データベースがオフラインになった後に次の Windows コマンドを実行します。
fsutil sparse queryflag<files path>\<database file>次の出力を受け取った場合、ファイルはファイル システムでスパースとしてマークされます。
このファイルはスパースとして設定されています。
データベース スナップショットの一部であるデータベース データ ファイルについてのみ、SQL Server メタデータとファイル システム メタデータの両方をスパースとしてマークする必要があります。
原因
この問題は、元々スパースとしてマークされていた代替ストリームが削除された後、ファイル システムがデータベース データ ファイル全体をスパースとして誤ってマークしたために発生します。 DBCC CHECKDB コマンドが終了すると、代替ストリームは削除されます。
メモ
内部データベース スナップショットの使用は、DBCC CHECKDB コマンド ファミリで使用される NTFS 機能です。 DBCC コマンドを実行すると、データベース エンジンによってデータベース スナップショット代替ストリームが作成され、トランザクション整合性のある状態になります。 DBCC コマンドは、代替ストリームに対してチェックを実行します。 DBCC コマンドが完了すると、代替ストリームは破棄されます。
この問題を引き起こす設計は、データベース ファイルのバックアップに Windows ボリューム レベルのバックアップが使用される Windows Server 2003 で導入されました。 SQL Server メタデータには、システム テーブル内のデータ ファイルの疎属性のコピーが格納されます。 ただし、SQL Server では、ファイル システムからスパース属性が削除された後、Is_Sparse情報は更新されません。
この問題は、データベースを Windows Server 2003 から新しいバージョンの Windows オペレーティング システムに移行した後にも発生します。
たとえば、データベースを Windows Server 2003 から Windows Server 2008 または Windows Server 2008 R2 に移行します。
解決策
SQL Server 2008 R2 または SQL Server 2008 でこの問題を解決するには、次の修正プログラムを適用し、データベースをオンラインにします。 データベースがオンラインになると、SQL Server は、物理データベース ファイルのメタデータがファイル システム内でスパースとしてマークされているかどうかを確認します。 スパースではないとマークされている場合は、SQL Server メタデータが更新されます。
注: ファイル システムから疎な属性を削除するには、データベース ファイルをコピーし、データベースのファイルの新しいコピーを使用します。 このプロセスの詳細については、次の MSDN Web サイトを参照してください。
累積的な更新プログラムの情報
SQL Server 2008 Service Pack 3
この問題の修正プログラムは、SQL Server 2008 Service Pack 3 の累積的な更新プログラム パッケージ 1 で最初にリリースされました。 この累積的な更新プログラム パッケージの関連情報を参照するには、以下の「サポート技術情報」 (Microsoft サポート技術情報) をクリックしてください。
2617146 SQL Server 2008 Service Pack 3 の累積的な更新プログラム パッケージ 1: 注: ビルドは累積的であるため、新しい修正プログラムの各リリースには、以前の SQL Server 2008 更新プログラムのリリースに含まれていたすべての修正プログラムおよびセキュリティ更新プログラムが含まれています。 マイクロソフトでは、この修正プログラムを含む最新の修正プログラム リリースを適用することを検討することをお勧めします。 詳細については、次のマイクロソフト サポート技術情報番号をクリックしてください。
2629969 SQL Server 2008 Service Pack 3 以降にリリースされた SQL Server 2008 ビルドには、特定の SQL Server Service Pack 用に Microsoft SQL Server 2008 修正プログラムが作成されます。 SQL Server 2008 Service Pack 3 のインストールには、SQL Server 2008 Service Pack 3 修正プログラムを適用する必要があります。 既定では、1 つの SQL Server Service Pack で提供されているすべての修正プログラムは、次の SQL Server Service Pack に含まれています。
SQL Server 2008 Service Pack 1
この問題の修正プログラムは、SQL Server 2008 Service Pack 1 の累積的な更新プログラム パッケージ 16 で最初にリリースされました。 この累積的な更新プログラム パッケージの関連情報を参照するには、以下の「サポート技術情報」 (Microsoft サポート技術情報) をクリックしてください。
2582282 SQL Server 2008 Service Pack 1 の累積的な更新プログラム パッケージ 16 注: ビルドは累積的であるため、新しくリリースされた各修正プログラムには、以前の SQL Server 2008 更新プログラムのリリースに含まれていたすべての修正プログラムおよびセキュリティ更新プログラムが含まれています。 マイクロソフトでは、この修正プログラムを含む最新の修正プログラム リリースを適用することを検討することをお勧めします。 詳細については、次のマイクロソフト サポート技術情報番号をクリックしてください。
970365 SQL Server 2008 Service Pack 1 以降にリリースされた SQL Server 2008 ビルドには、特定の SQL Server Service Pack 用に Microsoft SQL Server 2008 修正プログラムが作成されます。 SQL Server 2008 Service Pack 1 のインストールには、SQL Server 2008 Service Pack 1 修正プログラムを適用する必要があります。 既定では、1 つの SQL Server Service Pack で提供されているすべての修正プログラムは、次の SQL Server Service Pack に含まれています。
SQL Server 2008 Service Pack 2
この問題の修正プログラムは、SQL Server 2008 Service Pack 2 の累積的な更新プログラム パッケージ 6 で最初にリリースされました。 この累積的な更新プログラム パッケージの関連情報を参照するには、以下の「サポート技術情報」 (Microsoft サポート技術情報) をクリックしてください。
2582285 SQL Server 2008 Service Pack 2 の累積的な更新プログラム パッケージ 6 注: ビルドは累積的であるため、新しくリリースされた各修正プログラムには、以前の SQL Server 2008 更新プログラムのリリースに含まれていたすべての修正プログラムおよびセキュリティ更新プログラムが含まれています。 マイクロソフトでは、この修正プログラムを含む最新の修正プログラム リリースを適用することを検討することをお勧めします。 詳細については、次のマイクロソフト サポート技術情報番号をクリックしてください。
2402659 SQL Server 2008 Service Pack 2 SQL Server以降にリリースされた SQL Server 2008 ビルドは、特定の SQL Server Service Pack 用に作成されます。 SQL Server 2008 Service Pack 2 のインストールには、SQL Server 2008 Service Pack 2 修正プログラムを適用する必要があります。 既定では、1 つの SQL Server Service Pack で提供されているすべての修正プログラムは、次の SQL Server Service Pack に含まれています。
SQL Server 2008 R2 CU9
この問題の修正プログラムは、SQL Server 2008 R2 の累積的な更新プログラム パッケージ 9 で最初にリリースされました。 SQL Server 2008 R2 用のこの累積的な更新プログラム パッケージを入手する方法の詳細については、以下のサポート技術情報番号をクリックしてください。
2567713 SQL Server 2008 R2 の累積的な更新プログラム パッケージ 9 (注: ビルドは累積的であるため、新しい修正プログラムの各リリースには、以前の SQL Server 2008 R2 更新プログラムのリリースに含まれていたすべての修正プログラムおよびセキュリティ更新プログラムが含まれています。 この修正プログラムが含まれている最新リリースの修正の適用を検討することを推奨します。 詳細については、次のマイクロソフト サポート技術情報番号をクリックしてください。
981356 SQL Server 2008 R2 のリリース以降にリリースされた SQL Server 2008 R2 のビルド
SQL Server 2008 R2 Service Pack 1 CU2
この問題の修正プログラムは、累積的な更新プログラム パッケージ 2 で最初にリリースされました。 SQL Server 2008 R2 SP1 用のこの累積的な更新プログラム パッケージを入手する方法の詳細については、以下のサポート技術情報番号をクリックしてください。
2567714 SQL Server 2008 R2 Service Pack 1 の累積的な更新プログラム パッケージ 2 注: ビルドは累積的であるため、新しくリリースされた修正プログラムには、以前の SQL Server 2008 R2 SP1 更新プログラムのリリースに含まれていたすべての修正プログラムおよびセキュリティ更新プログラムが含まれています。 この修正プログラムが含まれている最新リリースの修正の適用を検討することを推奨します。 詳細については、次のマイクロソフト サポート技術情報番号をクリックしてください。
2567616 SQL Server 2008 R2 Service Pack 1 以降にリリースされた SQL Server 2008 R2 のビルド
修正プログラムの情報
マイクロソフトでは、この問題を修正する修正プログラムを提供しています。 ただし、この修正プログラムは、ここで説明する問題のみを修正することを目的としたものです。 この修正プログラムは、ここで説明する問題が発生しているシステムにのみ適用してください。 この修正プログラムは、今後さらにテストを行う場合があります。 したがって、この問題で深刻な影響を受けていない場合は、この修正プログラムが含まれる次のソフトウェア更新プログラムがリリースされるまで待つことを推奨します。
修正プログラムをダウンロードできる場合は、このサポート技術情報の資料の上部に「修正プログラムのダウンロード」セクションがあります。 このセクションが表示されていない場合は、Microsoft カスタマー サービス & サポート にお問い合わせのうえ、修正プログラムを入手してください。
注: 別の問題が発生した場合、またはトラブルシューティングが必要な場合には、別のサービス リクエストを作成することが必要になる場合があります。 特定の修正プログラムの対象とならない追加の質問および問題については、通常のサポート料金が適用されます。 マイクロソフト カスタマー サービス サポートの電話番号一覧を参照、または別のサービス リクエストを作成するには、次のマイクロソフト Web サイトを参照してください。
/contactus/?ws=support 注: [修正プログラムのダウンロードが利用可能] フォームには、修正プログラムを使用できる言語が表示されます。 使用している言語が表示されない場合は、その言語の修正プログラムが存在しないことになります。
前提条件
この修正プログラムを適用するには、SQL Server 2008 R2 がインストールされている必要があります。
再起動の必要性
この修正プログラムの適用後にコンピューターを再起動する必要はありません。
修正プログラムの置き換えに関する情報
この修正プログラムを適用しても、以前にリリースされた修正プログラムが置き換えられることはありません。
ファイル情報
修正プログラム (グローバル版) のファイル属性は次表のとおりです。ただし、これより新しい修正プログラムがリリースされている可能性もあります。 これらのファイルの日付と時刻は世界協定時 (UTC) で記載されています。 ファイル情報に表示される時刻は、ローカル時刻に変換されています。 UTC とローカル時刻との時差を確認するには、[コントロール パネル] の [日付と時刻] の [タイム ゾーン] タブを使用してください。
| ファイル名 | ファイルのバージョン | ファイル サイズ | 日付 | 時刻 | プラットフォーム |
|---|---|---|---|---|---|
| Sqlservr.exe | 2009.100.1800.0 | 121,829,216 | 2011 年 7 月 8 日 | 1,155 | IA-64 |
| Sqlservr.exe | 2009.100.1800.0 | 62,027,616 | 2011 年 7 月 8 日 | 1,228 | x64 |
| Sqlservr.exe | 2009.100.1800.0 | 42,911,584 | 2011 年 7 月 8 日 | 1,322 | x86 |
状態
Microsoft は、これが "適用対象" セクションに記載されている Microsoft 製品の問題であることを確認しました。
追加情報
次の表に、SQL Server のインスタンスとルールが評価される SQL Server 製品のバージョンで、この条件を自動的にチェックする製品またはツールの詳細を示します。
| ルール ソフトウェア | ルール タイトル | ルールの説明 | ルールが評価される対象である製品バージョン |
|---|---|---|---|
| System Center Advisor | スパース ファイルとしてマークされた SQL Server データベース ファイル | System Center Advisor は、この SQL Server インスタンスに疎としてマークされたデータベース ファイルが含まれているかどうかを確認します。 データベース スナップショット ファイルのみをファイルとしてマークする必要があります。 通常のデータベース ファイルがスパースとしてマークされている場合、Advisor は警告を生成します。 Advisor は、カタログ ビュー sys.master_filesの is_sparse 列に依存しています。 アドバイザー アラートの「収集された情報」セクションに記載されている詳細を確認し、影響を受けるファイルの OS レベルでスパース状態をチェックします。 OS スパース状態をクリアしたら、この記事で説明する修正プログラムを適用して、SQL Server メタデータを更新し、OS 設定と同期できます。 |
SQL Server 2008 SQL Server 2008 R2 SQL Server 2012 |
参考資料
DBCC コマンドの詳細については、次の MSDN Web サイトを参照してください。
DBCC コマンドに関する一般的な情報 Fsutil ステートメントの詳細については、次の MSDN Web サイトを参照してください。
Fsutil ステートメントに関する一般情報Windows Server 2003 のこの問題の関連情報を参照するには、以下の「サポート技術情報」 (Microsoft サポート技術情報) をクリックしてください。
973886 64 ビット版の Windows XP SP2 または Windows Server 2003 SP2 で疎な属性を持つすべてのデータ ストリームが削除されると、NTFS ファイル システム内の大きいファイルを復元できません
932021 Windows Server 2003 ベースのコンピューターで "/v" スイッチと一緒に "chkdsk" コマンドを実行すると、"スパース ファイル レコード セグメントを修正しています <数値>" というエラー メッセージが表示される