熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> SQL Server >> 正文

SQLServer置疑數據庫解決方法

2013-11-15 14:41:15  來源: SQL Server 

  首先確認已經備份了mdf和ldf文件

   在SQL Server中新建一個同名的數據庫然後停止SQL Server服務

   用原有的mdf和ldf文件覆蓋新建數據庫對應的mdf和ldf文件

   重新啟動SQL Server服務這是應該會看到這個數據庫處於置疑(Suspect)狀態

   在SQL查詢分析器中執行以下命令以允許更新系統表

  use mastergosp_configure allow updatesreconfigure with overridego

   將這個數據庫置為緊急模式

  update sysdatabases set status = where name = db_namego

   使用DBCC CHECKDB命令檢查數據庫中的錯誤

  DBCC CHECKDB(db_name)GO

   如果DBCC CHECKDB命令失敗請轉至第否則先將數據庫置為單用戶模式再嘗試對其進行修復

  sp_dboption db_namesingle usertrueDBCC CHECKDB(db_name REPAIR_ALLOW_DATA_LOSS)GO

  如果在執行DBCC CHECKDB(db_name REPAIR_ALLOW_DATA_LOSS)命令時提示說數據庫未處於單用戶模式狀態的話則重新啟動SQL Server服務然後繼續嘗試

   如果DBCC CHECKDB(db_name REPAIR_ALLOW_DATA_LOSS)命令失敗請轉至第否則若成功修復了數據庫中的錯誤

  重新執行DBCC CHECKDB(db_name)命令確認數據庫中已沒有錯誤存在

  清除數據庫的置疑狀態sp_resetstatus db_name

  清除數據庫的單用戶模式狀態sp_dboption db_namesingle userfalse

  重新啟動SQL Server服務如果一切正常的話則數據庫已經成功恢復

   如果以上步驟都不能解決問題的話請參考附件中的文檔嘗試通過重建事務日志來恢復數據庫中的數據如果您只有MDF文件問題就更加復雜一些我們需要直接重建事務日志了:

   在SQL Server中新建一個同名的數據庫然後停止SQL Server服務

   用原有的ldf文件覆蓋新建數據庫對應的mdf文件將其日志文件(ldf)刪除

   啟動SQL Server服務並將數據庫置為緊急模式(同上: 步驟和步驟

   停止並重新啟動SQL Server服務

   執行以下命令重建數據庫日志文件(下面是個示例您要用您實際的數據庫名)

  DBCC REBUILD_LOG(cas_db D:\cas_db\cas_db_LogLDF

   重新將該數據庫置為單用戶模式

   再次嘗試使用DBCC CHECKTABLE或DBCC CHECKDB命令檢查並修復數據庫中的錯誤


From:http://tw.wingwit.com/Article/program/SQLServer/201311/22174.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.