Sql-Server
SQL Server 2008 DBCC 問題
我們有一個數據庫 Ms
DBCC CHECKDB (MS)
要麼
ALTER DATABASE MS SET SINGLE_USER DBCC CHECKDB(MS,REPAIR_ALLOW_DATA_LOSS) ALTER DATABASE MS SET MULTI_USER
錯誤資訊
消息 0,級別 11,狀態 0,行 0:
目前命令發生嚴重錯誤。結果,如果有的話,應該丟棄。
消息 0,級別 20,狀態 0,行 0:
目前命令發生嚴重錯誤。結果,如果有的話,應該丟棄。
在花費數小時測試每個表後,發現有問題的表是“LC”
DBCC CHECKTABLE(LC)
錯誤資訊
消息 211,級別 23,狀態 51,第 1 行:
可能的架構損壞。執行 DBCC CHECKCATALOG。
現在,
DBCC CHECKCATALOG
資訊
DBCC 執行完成。如果 DBCC 列印錯誤消息,請聯繫您的系統管理員。
我還嘗試查看索引
SELECT * FROM sysindexes
錯誤資訊
消息 211,級別 23,狀態 51,第 1 行:
可能的架構損壞。執行 DBCC CHECKCATALOG。
消息 0,級別 20,狀態 0,行 0:
目前命令發生嚴重錯誤。結果,如果有的話,應該丟棄。
再次,
SELECT * FROM LC
要麼
DROP TABLE LC
錯誤資訊
消息 211,級別 23,狀態 51,第 1 行:
可能的架構損壞。執行 DBCC CHECKCATALOG。
消息 0,級別 20,狀態 0,行 0:
目前命令發生嚴重錯誤。結果,如果有的話,應該丟棄。
我不介意該特定表的數據失去,我希望刪除該表。任何想法,請幫助!
你可以
RESTORE
而且永遠不會使用*(這篇文章值得一讀)*!說真的,再多的 DBCC voodoo 也不會讓您的數據庫恢復到原始的工作狀態。REPAIR_ALLOW_DATA_LOSS
這些類型錯誤的最可能原因是磁碟驅動器故障。在繼續進行故障排除之前,請使用hdtune或
chkdsk /R
. 我還建議進行記憶體測試(有一個稱為 Windows 記憶體診斷的內置測試。)一旦你確定機器沒問題,你就可以將所有好的表複製到一個新的數據庫中。然後您可以刪除舊數據庫。