ストアドプロシージャを呼び出すと、次のSqlException
が表示されます。
データベース2の論理ページ(5:65424)をフェッチしようとしましたが失敗しました。これは、4899918190390149120ではなく、アロケーションユニット7349876362857938944に属しています。
System.Data.SqlClient.SqlExceptionが発生しました
Message = "データベース2の論理ページ(5:65424)をフェッチしようとしましたが失敗しました。これは4899918190390149120ではなく、割り当てユニット7349876362857938944に属しています。Source = "。Net SqlClient Data Provider"
ErrorCode = -2146232060
クラス= 21
LineNumber = 257
数値= 605
Procedure = "ispDisplayCount"
サーバー= "10.10.1.1"
状態= 3
この例外はどういう意味ですか?上記の問題に対する解決策はありますか?
上記のエラーで参照されているデータベースはtempdbを示していますが、メッセージ605を参照する同様のエラーは、以下の回答を使用して修正できます。
メッセージ605、レベル21、状態3、行1
データベース7で論理ページ(1:8687634)をフェッチしようとして失敗しました。 72057594052476928ではなく、割り当てユニット72057594364821504に属しています。
エラーメッセージで示されたデータベースIDが_2
_の場合、影響を受けるデータベースはtempdbです。 tempdbのこの種の破損を修正する1つの方法は、SQL Serverインスタンスを再起動することです。 2以外のデータベースIDについては、以下の推奨事項に従ってください。
バックアップから復元する必要があるかもしれませんが、これを試してください:
Sysadminロールのメンバーとして、DBCC PAGE (2, 5, 65424, 3);
を実行し、_Metadata: IndexId
_値を探します。
0
_(ヒープ)または_1
_(クラスター化インデックス)の場合は、バックアップから復元する必要があります。0
_または_1
_の場合は、非クラスター化インデックスを再構築できます。DBCCコマンドを実行し、見つけたものをお知らせください。 をチェックしてくださいhttps://www.mssqltips.com/sqlservertip/1578/using-dbcc-page-to-examine-sql-server-table-and-index-data/ for _DBCC PAGE
_コマンドの詳細
データベースが破損しています。適切なバックアップから復元する時間。バックアップがない場合は、 リカバリプランのテストの重要性 について学ぶ時間です。ハードウェアの信頼性の調査も必要です。システムログの警告とエラーに注意してください。
エラーは、データベースが破損していることを示します。良いニュースは、データベースID 2がこれがtempdbデータベースであることを示しているため、これを修正するのは簡単です。データベースインスタンスを再起動するだけです。
インスタンスを再起動したら、破損が発生した理由を理解する必要があります。問題のファイルがあるドライブでchkdsk
を実行することから始めます。次に、ストレージ自体を見て、問題がないかどうかを確認する必要があります。物理ディスクの問題である可能性、HBAまたはRAIDカードドライバなどである可能性があります。
SQLキャッシュをクリアすることでこれを解決できました。
DBCC FREEPROCCACHE
GO
DBCC DROPCLEANBUFFERS
GO
どうやらSQLサービスを再起動しても同じ影響があったでしょう。
( Made By SQL を使用して、他の人を助けるためにここに複製します!)
多くの人から聞かれるのは、「データベースが壊れています。復元する必要があります」です。以下のいくつか;ログを確認し、問題が最初にいつ発生したか、その行に先行するエラーを確認し、ページが属するデータベース/テーブルを確認します
私の場合、このエラーの前に発生しました。
データベース 'XYZ'のテーブル629577281のインデックスID 9にインデックスエントリが見つかりません。示されたインデックスが破損しているか、現在の更新計画に問題があります
回避策は、参照されたインデックスを追跡して一時的に削除することでした。
私は後で私の正確な問題を説明し、解決策を提供するこのMicrosoftリンクを見つけました link
これが将来誰かを助けることを願っています
私の場合、関係するtablesのデータを切り詰めて再入力することが解決策でした。
おそらくテーブル内のデータが破損しています。