Sql-Server

嘗試在數據庫 2 中獲取邏輯頁 (5:65424) 失敗

  • December 26, 2019

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(聚集索引),則需要從備份中恢復。
  • 如果不是 01,您可以重建非聚集索引。

執行 DBCC 命令,讓我們知道您發現了什麼。檢查https://www.mssqltips.com/sqlservertip/1578/using-dbcc-page-to-examine-sql-server-table-and-index-data/了解有關DBCC PAGE命令的詳細資訊

引用自:https://dba.stackexchange.com/questions/27450