程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> SqlServer數據庫 >> 關於SqlServer >> SQL Server置疑數據庫解決方法

SQL Server置疑數據庫解決方法

編輯:關於SqlServer

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

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

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

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

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

      use mastergosp_configure ‘allow updates’,1reconfigure with overridego

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

      update sysdatabases set status = 32768 where name = ‘db_name’go

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

      DBCC CHECKDB(‘db_name’)GO

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

      sp_dboption ‘db_name’,’single user’,’true’DBCC CHECKDB(‘db_name’, REPAIR_ALLOW_DATA_LOSS)GO

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

      9. 如果DBCC CHECKDB(‘db_name’, REPAIR_ALLOW_DATA_LOSS)命令失敗,請轉至第10步,否則若成功修復了數據庫中的錯誤:

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

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

      清除數據庫的單用戶模式狀態:sp_dboption ‘db_name’,’single user’,’false’

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

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

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

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

      3. 啟動SQL Server服務,並將數據庫置為緊急模式(同上: 步驟5和步驟6)。

      4. 停止並重新啟動SQL Server服務。

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

      DBCC REBUILD_LOG(’cas_db’, ‘D:cas_dbcas_db_Log.LDF’)

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

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

    1. 上一頁:
    2. 下一頁:
    Copyright © 程式師世界 All Rights Reserved