嘗試在數據庫 2 中獲取邏輯頁 (5:65424) 失敗
我
SqlException
在呼叫儲存過程時得到以下資訊:嘗試在數據庫 2 中獲取邏輯頁 (5:65424) 失敗。它屬於分配單元7349876362857938944而不是4899918190390149120。
*System.Data.SqlClient.SqlException 發生
Message=“Attempt to fetch logic page (5:65424) in database 2 failed. 它屬於分配單元 7349876362857938944 而不是 4899918190390149120。*
Source=".Net SqlClient 數據提供程序”
ErrorCode=-2146232060
Class=21
LineNumber=257
Number=605
Procedure=“ispDisplayCount”
Server=“10.10.1.1”
State=3
這個例外是什麼意思?上述問題有解決辦法嗎?
儘管上述錯誤中引用的數據庫指示 tempdb,但引用消息 605 的類似錯誤可以使用以下答案修復。
消息 605,級別 21,狀態 3,第 1 行
嘗試在數據庫 7 中獲取邏輯頁 (1:8687634) 失敗。它屬於分配單元 72057594364821504 不屬於 72057594052476928。
如果錯誤資訊指示的數據庫 ID 為
2
,則受影響的數據庫為 tempdb。在 tempdb 中修復此類損壞的一種方法是簡單地重新啟動 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/了解有關
DBCC PAGE
命令的詳細資訊