本文將為大家解釋SQL Server置疑資料庫的解決方法,資料庫被標為置疑有時是很偶然的,以下將為大家介紹幾個解決方法。 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指令檢查並修復資料庫中的錯誤
-