次の方法で共有


MSSQLSERVER_832

適用対象: SQL サーバー

詳細

属性 Value
製品名 SQL Server
イベント ID 832
イベント ソース MSSQLSERVER
コンポーネント SQLEngine
シンボル名 B_CONSTPAGECHANGED
メッセージ テキスト 定数を指定する必要があるページが変更されました (予想されるチェックサム: <expected value>,actual checksum: <actual value>, database <dbid>, file '<filename>', page <pageno>)。 これは一般的に、メモリの障害、またはハードウェアか OS の破損を示します。

説明

外部要因により、データベース ページの変更に使用される通常の SQL Server エンジン コードの外部でデータベース ページが変更されました。 次の条件が考えられます。

  • データベース ページで正しくない書き込みを行う SQL Server プロセスで実行されているスレッド。 これは、多くの場合、"スクリブラー" と呼ばれます
  • データベース ページをバックアップしているメモリが不正に変更されたり、破損したりしているハードウェアまたはオペレーティングシステムの問題。

SQL Server でこの動作エラー 832 が検出されると、エラー 832 が発生します。

ユーザー アクション

エラーの原因を調べるには、次のオプションを検討してください。

  • 通常のハードウェアまたはシステムのチェックを実行して、メモリ、CPU、またはその他のハードウェア関連の問題が発生しているかどうかを確認する必要があります。 すべてのシステム ドライバー、オペレーティング システムの更新プログラム、およびハードウェアの更新プログラムが確実にシステムに適用されていることを確かめます。 メモリ関連のテストを含む、ハードウェアの製造元の診断を実行することを検討します。
  • 拡張ストアド プロシージャ、COM オブジェクト、またはデータベース ページ用に予約されている SQL Server メモリを誤って変更している可能性があるその他の DLL など、この問題を引き起こす可能性がある SQL Server に読み込まれる可能性のある "外部" DLL を評価します。

このエラーが発生した場合は、エラー メッセージの <dbid> によって参照されているデータベースに対してDBCC CHECKDBを実行することを直ちに検討する必要があります。

詳細

このエラーは、多くの場合 LazyWriter と呼ばれるバックグラウンド タスクによって検出されます。 (このタスクの "コマンド" は LAZY WRITER として表示されます。) そのため、このエラーはクライアント アプリケーションに返されません。 エラーは、EventID=832 として Windows アプリケーション イベント ログに書き込まれます。

現在キャッシュ内で変更されていない (つまり "ダーティ" な) ページだけがチェックされます。 メッセージで "変更不可" という用語が使用されているのは、ページはディスクから読み取られてから変更されていないためです。 さらに、ページにチェックサム値があり、チェックサム エラー (メッセージ 824) が発生していないため、ページはディスクから "クリーン" の状態で読み取られました。 ただし、このエラーの発生後、ある時点でページが変更され、誤った変更でディスクに書き込まれたおそれがあります。 このエラーが発生した場合、新しいチェックサムは、ディスクに書き込まれる前のすべての変更に基づいて計算されます。 このため、ページがディスク上で破損していても、その後のディスクからの読み取りによってチェックサム エラーが発生しない場合があります。 このエラーによって参照されているすべてのデータベースで DBCC CHECKDB を実行することが重要です。

ディスクへの書き込み後、この状態にあるページに関するエラーが DBCC CHECKDB によって報告されない場合もあります。 これは、誤った変更が、データが一切保持されていない、または重要なページまたは行構造の情報が含まれていないページ上の場所で発生したか、あるいは CHECKDB で検出されないデータに対する変更である可能性があるためです。

メッセージ 832 の詳細情報については、ホワイトペーパー「SQL Server 入出力の基礎、第 2 章」でも確認できます。