2

「破損ページ」エラーを報告している SQL 2005 データベースを調べるように依頼されました。

MsgID などを調べることはできますが、DBCC CHECKDB の出力をより一般的な意味で解釈するためのポインタがいくつか必要なだけです。

このサンプルでは:

メッセージ 8909、レベル 16、状態 1、行 1
テーブル エラー: オブジェクト ID 0、インデックス ID -1、パーティション ID 0、割り当てユニット ID 8795506764168298496 (タイプ不明)、ページ ID (1:106887) のページ ヘッダーに正しくないページ ID が含まれています。ページ ヘッダーの PageId = (1041:-523272204)。
メッセージ 8939、レベル 16、状態 98、行 1
テーブル エラー: オブジェクト ID 0、インデックス ID -1、パーティション ID 0、割り当てユニット ID 8971733407675449344 (タイプ不明)、ページ (0:0)。テスト (IS_OFF (BUF_IOERR, pBUF->bstat)) が失敗しました。値は 62916617 と -4 です。
CHECKDB は、単一のオブジェクトに関連付けられていない 0 個の割り当てエラーと 37 個の整合性エラーを検出しました。

...明らかに、エラーは単一のオブジェクトに関連していません(ObjectIDとIndexIDに適切な値がないことに注意してください)。それは正確にはどういう意味ですか?単一のオブジェクトではない場合、それは何ですか?

このサンプルでは:

メッセージ 8939、レベル 16、状態 98、行 1
テーブル エラー: オブジェクト ID 69575286、インデックス ID 1、パーティション ID 286034662653952、アロケーション ユニット ID 286034662653952 (タイプ In-row データ)、ページ (1:207727)。テスト (IS_OFF (BUF_IOERR, pBUF->bstat)) が失敗しました。値は 62916617 と -1 です。
メッセージ 8964、レベル 16、状態 1、行 1
テーブル エラー: オブジェクト ID 69575286、インデックス ID 1、パーティション ID 286034662653952、アロケーション ユニット ID 71780678747160576 (タイプ LOB データ)。ページ (1:443)、スロット 26、テキスト ID 1509706039296 の行外データ ノードは参照されません。

...データを含むページを参照していますか、それともインデックスを含むページを参照していますか? 行外データについて言及していますが、インデックス ID も提供します。インデックス ID 値 0 と 1 は何を意味しますか?

ちなみに、これは慈善団体を支援するためのものなので、どんな助けも大歓迎です. ありがとう。

追伸: 私はまだ現場に行っておらず、送られてきた dbcc ログを調べているだけなので、いじくり回すことはまだできません。

編集:そのSQL 2005 v 9.0.3042

編集:サーバーの切り替え後にサードパーティがメンテナンス計画を元に戻さなかったため、破損したページがデータベースに数か月間残っていたため、バックアップの復元はオプションではない可能性があるとしましょう、またはそのようなシナリオ。したがって、エラーを調査し、修正または分離することが唯一の手段であると想定してください。

4

2 に答える 2

1

Paul Randallは、あなたが必要とするほとんどすべての答えを持っています。

ただし、実際には、すでに「復元」を検討する必要があります...

于 2009-08-27T18:27:59.500 に答える
1

私はここでの経験から話します...

エラーがあるということは、データベースが破損していることを意味します。

このエラーが発生していない最新のバックアップを復元して使用します。

DBCCを実行して損傷を修復することはできますが、データが失われる可能性はかなりあります。ただし、これを行うことはお勧めしません。「復元/修復」は機能しているように見えるかもしれませんが、機能しないためです。

于 2009-08-27T18:28:45.007 に答える