Microsoft アカウントでサインイン
サインインするか、アカウントを作成します。
こんにちは、
Select a different account.
複数のアカウントがあります
サインインに使用するアカウントを選択してください。

現象

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

  • Microsoft SQL Server 2008 または SQL Server 2005 のデータベースをバックアップから復元します。

  • 復元プロセス中にエラーが発生するため、データベースを復元できません。

  • CONTINUE_AFTER_ERROR オプションを使用して、同じバックアップからデータベースを正常に復元します。

この状況で、SQL Server データベースを含むコンピュータで DBCC CHECKDB コマンドを実行すると、次のようなエラー メッセージが表示されます。

メッセージ 8967、レベル 16、状態 216、サーバー <server name>、行 2
DBCC で内部エラーが発生しました。処理を続行できません。 ご購入元に問い合わせてください。
'<database name>' の DBCC 結果。
メッセージ 8921、レベル 16、状態 1、サーバー <server name>、行 1
確認を終了しました。 情報の収集中にエラーが発生しました。 tempdb の領域が不足しているか、システム テーブルの一貫性が損なわれている可能性があります。 以前に発生したエラーを調べてください。

また、次のようなメッセージが SQL Server エラー ログに記録される場合があります。

2007-05-26 07:13:49.21 spid58 DBCC encountered a page with an LSN greater than the current end of log LSN (<LSN>) for its internal database snapshot. Could not read page (file id:page id), database '<database name' (database ID database id>), LSN = (<LSN>), type = 32, isInSparseFile = 1. Please re-run this DBCC command.

原因

この問題は、DBCC CHECKDB コマンドで必要なチェックを実行して、データベースの整合性を確認することができない場合に発生します。 これらのチェックを実行できない場合には、多くの理由が考えられます。 たとえば、メタデータの不整合またはデータベース スナップショットの破損など、データベースに根本的な不整合がある場合にこの現象が発生することがあります。 このエラーの原因の詳細は、エラー メッセージに表示されるさまざまな状態を調査することで特定できます。 「現象」で説明されている状況では、状態 216 のメッセージによって、DBCC CHECKDB コマンドでログ シーケンス番号 (LSN) がログの最後の LSN よりも大きい内部スナップショットからページが読み込まれたことが示されています。 この現象は、CONTINUE_AFTER_ERROR オプションを使用してデータベースを復元した場合に発生することがあります。

回避策

この問題を回避するには、DBCC CHECKDB コマンドで TABLOCK ヒントを使用します。 これによって、エラー メッセージが表示されずに DBCC CHECKDB コマンドが終了します。

TABLOCK ヒントの詳細については、次のマイクロソフト Web サイトを参照してください。

http://msdn.microsoft.com/ja-jp/library/ms187373.aspx

状況

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

ヘルプを表示

スキルを磨く
トレーニングの探索
新機能を最初に入手
Microsoft Insider に参加する

この情報は役に立ちましたか?

言語の品質にどの程度満足していますか?
どのような要因がお客様の操作性に影響しましたか?

ご意見をいただきありがとうございます。

×