[FIX] データベース使用中 DBCC CHECKDB を実行するとアクセス違反が発生

この記事は、以前は次の ID で公開されていました: JP293292
この資料は、アーカイブされました。これは "現状のまま" で提供され、更新されることはありません。
現象
ほかのユーザーがデータベースに頻繁にアクセスしているときに DBCC CHECKDB コマンドを実行すると、アクセス違反が発生します。
解決方法
この問題を解決するために、SQL Server 2000 の最新の Service Pack の適用をお願いいたします。
最新の SQL Server サービスパックのダウンロードおよびインストールについて詳しくは以下をご覧下さい。

http://www.microsoft.com/japan/sql/download/default.asp (日本語版)
http://www.microsoft.com/sql/downloads/default.htm(英語版)
回避策
DBCC CHECKDB をシングル ユーザー モードで実行するか、作業負荷が小さいときに実行します。
状況
弊社では、これを Microsoft SQL Server version 2000 の問題として確認しています。
この問題は、Microsoft SQL Server version 2000 Service Pack 1 で修正されています。
詳細
アクセス違反が発生すると、DBCC CHECKDB が実行された接続が切断されますが、データベースそのものへの悪影響はありません。できるだけ作業負荷の小さい時間を選んでコマンドを実行すると、安全に実行できます。

エラー ログには、以下のようなスタック トレースが記録されます。
2001-01-16 13:47:54.86 spid59    SqlDumpExceptionHandler: Process 2624 generated fatal exception c0000005 EXCEPTION_ACCESS_VIOLATION. SQL Server is terminating this process.********************************************************************************* BEGIN STACK DUMP:*   01/16/01 13:47:54 spid 59**   Exception Address = 008DBAD2 (CheckTables::PageUpdate(class CheckRecInfo &,unsigned char,unsigned char) + 00000092 Line 0+00000000)*   Exception Code    = c0000005 EXCEPTION_ACCESS_VIOLATION*   Access Violation occurred reading address 00000012* Input Buffer 50 bytes -*  dbcc checkdb([MSSales])  *  Short Stack Dump008DBAD2 Module(sqlservr+004DBAD2) (CheckTables::PageUpdate(class CheckRecInfo &,unsigned char,unsigned char)+00000092)008E88B9 Module(sqlservr+004E88B9) (CheckTables::ProcessLogModifyRow(class PageLog const *,class CheckRecInfo &,unsigned char,enum LOGR_UNDO_FLAG)+00000208)008C91D1 Module(sqlservr+004C91D1) (CheckAggregate::ProcessLog(class LogRec const *,class CheckRecInfo &,enum LOGR_UNDO_FLAG)+000000B6)008C938E Module(sqlservr+004C938E) (CheckAggregate::ProcessLogRecord(class LogRec const *,class LSN const &,enum LOGR_UNDO_FLAG)+0000009E)008DB1F3 Module(sqlservr+004DB1F3) (CheckLogReader::ReadLog(int (__cdecl*)(class LogRec const *,class LSN const &,enum LOGR_UNDO_FLAG),class CAutoLatch &)+00000303)008DB495 Module(sqlservr+004DB495) (CheckLogReader::ScanLog(int (__cdecl*)(class LogRec const *,class LSN const &,enum LOGR_UNDO_FLAG))+000000D6)008C8EA1 Module(sqlservr+004C8EA1) (CheckAggregate::GetNextFact(void)+000000F2)008EB20E Module(sqlservr+004EB20E) (CTRowsetInstance::FGetNextRow(void)+00000216)0091FD06 Module(sqlservr+0051FD06) (CUtRowset::GetNextRows(unsigned long,long,long,unsigned long *,unsigned long * *)+00000050)0070FAA3 Module(sqlservr+0030FAA3) (CQScanRmtScan::GetRow(unsigned long *,unsigned long *)+00000155)00719763 Module(sqlservr+00319763) (CQScanXProducer::Open(unsigned long *)+0000039B)007191AA Module(sqlservr+003191AA) (FnProducerThread(void *)+0000022C)004DF8D2 Module(sqlservr+000DF8D2) (subproc_main(void *)+000000E3)410735D0 Module(UMS+000035D0) (ProcessWorkRequests(class UmsWorkQueue *)+00000264)4107382C Module(UMS+0000382C) (ThreadStartRoutine(void *)+000000BC)7800BEA1 Module(MSVCRT+0000BEA1) (_beginthread+0000008B)77E837CD Module(KERNEL32+000037CD) (_BaseThreadStart@8+00000052)-------------------------------------------------------------------------------Dump thread - spid = 59, PSS = 0x4a569228, EC = 0x4a569538Stack Dump being sent to d:\MSSQL\log\SQL00164.dmp
関連情報
この資料は米国 Microsoft Corporation から提供されている Knowledge Base の Article ID 293292 (最終更新日 2001-06-13) をもとに作成したものです。

プロパティ

文書番号:293292 - 最終更新日: 01/16/2015 22:03:05 - リビジョン: 2.1

  • Microsoft SQL Server 2000 Standard Edition
  • kbnosurvey kbarchive kbbug kbfix kbsqlserv2000bug kbsqlserv2000sp1fix KB293292
フィードバック