[FIX] 破損したインデックスによって DBCC CHECKTABLE が失敗

この記事は、以前は次の ID で公開されていました: JP299323
この資料は、アーカイブされました。これは "現状のまま" で提供され、更新されることはありません。
現象
インデックスが破損しているテーブルで DBCC CHECKTABLE を実行すると、次のエラー メッセージが表示され、チェックが終了することがあります。
[Microsoft][ODBC SQL Server Driver][名前付きパイプ]ConnectionCheckForData (PeekNamedPipe()).
[Microsoft][ODBC SQL Server Driver][名前付きパイプ]接続が解除されました。
解決方法
この問題を解決するために、SQL Server 2000 の最新の Service Pack の適用をお願いいたします。
最新の SQL Server サービスパックのダウンロードおよびインストールについて詳しくは以下をご覧下さい。

http://www.microsoft.com/japan/sql/download/default.asp (日本語版)
http://www.microsoft.com/sql/downloads/default.htm(英語版)
回避策
  1. データベース オブジェクトをスクリプトとして出力します。たとえば、新しいデータベースにデータを一括コピー (bcp) 出力および bcp 入力します。
  2. 自動的に作成された統計をすべて削除します。
状況
弊社では、これを Microsoft SQL Server version 2000 の問題として確認しています。
この問題は、Microsoft SQL Server version 2000 Service Pack 1 で修正されています。
詳細
SQL Server 2000 Service Pack 1 (SP1) 以前では、(接続が解除されるときに) 次のテキストがエラー ログに記録されます。
Short Stack Dump77F810B5 Module(ntdll+000010B5) (NtGetContextThread+0000000B) 0092569E Module(sqlservr+0052569E) (utassert_fail(enum UTASSERT_TYPE,char const *,char const *,int,char const *,...)+000002E9) 0083A351 Module(sqlservr+0043A351) (LatchBase::Release(enum LatchBase::LATCH_TYPE)+00000039) 008E0365 Module(sqlservr+004E0365) (CheckResultSet::Set(class PageId const &,int,unsigned short,int,unsigned short,class PageId const &,int,int,int,int,long,int,unsigned short const *,int,int const * const,short,int,unsigned char const *,int,int)+000004 77E8314D Module(KERNEL32+0000314D) (SetEvent+0000000C)-------------------------------------------------------------------------------2001-05-21 16:09:26.17 spid51    SQL Server アサーション : ファイル: <latch.cpp>、行 = 799失敗したアサーション = 'type > NL && type < LASTLATCH'。2001-05-21 16:09:26.26 spid51    エラー : 3624、レベル : 20、状態 : 1

SQL Server 2000 SP1 では、次のエラーが発生します。
サーバー : メッセージ 8929、レベル 16、状態 1、行 1
オブジェクト ID 1549468469 : RID = (1:359718:4) OBJECTID1 = 1 and OBJECTVALUE1 = 'FUNCLIB_EN ' and OBJECTID2 = 2 and OBJECTVALUE2 = 'EXPL_BOM_SQL ' and OBJECTID3 = 12 and OBJECTVALUE3 = 'FieldF で識別されるデータ レコードが所有するテキスト ID 105872687104 でエラーが見つかりました。

サーバー : メッセージ 8965、レベル 16、状態 1、行 1
テーブル エラー : オブジェクト ID 1549468469。ページ (1:362025)、スロット 1、テキスト ID 105872687104 の TEXT、NTEXT、または IMAGE ノードは、ページ (1:183752)、スロット 8 が参照していますが、スキャンで見つかりませんでした。
'PSPCMPROG' に対する DBCC の結果。
オブジェクト 'PSPCMPROG' の 1893 ページの中に 44936 行あります。
CHECKTABLE は 0 個のアロケーション エラーと 2 個の一貫性エラーを見つけました、テーブル 'PSPCMPROG' (オブジェクト ID 1549468469)。
repair_allow_data_loss は DBCC CHECKTABLE (xyz.dbo.PSPCMPROG) が見つけたエラーの最小修復レベルです。
: NOINDEX を使用して実行する場合は、エラーまたは接続の終了は発生しません。
関連情報
この資料は米国 Microsoft Corporation から提供されている Knowledge Base の Article ID 299323 (最終更新日 2001-06-15) をもとに作成したものです。


DBCC CHECKTABLE statistics index ConnectionCheckForData PeekNamedPipe
プロパティ

文書番号:299323 - 最終更新日: 01/16/2015 22:39:11 - リビジョン: 2.1

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