您好,是這樣的:
1.首先確認已經備份了.mdf和.ldf檔案。
2.在SQLServer中新建一個同名的資料庫,然後停止SQLServer服務。
3.用原有的.mdf和.ldf檔案覆蓋新建資料庫對應的.mdf和.ldf檔案。
4.重新啟動SQLServer服務,這是應該會看到這個資料庫處於置疑(Suspect)狀態。
5.在SQL查詢分析器中執行以下命令,以允許更新系統表:usemastergosp_configure"allowupdates",1reconfigurewithoverridego。
6.將這個資料庫置為緊急模式:updatesysdatabasessetstatus=32768wherename="db_name"go。
7.使用DBCCCHECKDB命令檢查資料庫中的錯誤:DBCCCHECKDB("db_name")GO。
8.如果DBCCCHECKDB命令失敗,請轉至第10步,否則先將資料庫置為單使用者模式,再嘗試對其進行修復:sp_dboption"db_name","single
user","true"DBCCCHECKDB("db_name",REPAIR_ALLOW_DATA_LOSS)GO
如果在執行DBCCCHECKDB("db_name",REPAIR_ALLOW_DATA_LOSS)命令時提示說資料庫未處於單使用者模式狀態的話,則重新啟動SQLServer服務,然後繼續嘗試。
9.如果DBCCCHECKDB("db_name",REPAIR_ALLOW_DATA_LOSS)命令失敗,請轉至第10步,否則若成功修復了資料庫中的錯誤:
重新執行DBCCCHECKDB("db_name")命令,確認資料庫中已沒有錯誤存在。
清除資料庫的置疑狀態:sp_resetstatus"db_name"
清除資料庫的單使用者模式狀態:sp_dboption"db_name","singleuser","false"
重新啟動SQLServer服務,如果一切正常的話,則資料庫已經成功恢復。
10.如果以上步驟都不能解決問題的話,請參考附件中的文件嘗試透過重建事務日誌來恢復資料庫中的資料。如果您只有MDF檔案,問題就更加複雜一些,我們需要直接重建事務日誌了:
1.在SQLServer中新建一個同名的資料庫,然後停止SQLServer服務。
2.用原有的ldf檔案覆蓋新建資料庫對應的.mdf檔案,將其日誌檔案(.ldf)刪除。
3.啟動SQLServer服務,並將資料庫置為緊急模式(同上:步驟5和步驟6)。
4.停止並重新啟動SQLServer服務。
5.執行以下命令重建資料庫日誌檔案:(下面是個示例,您要用您實際的資料庫名)
DBCCREBUILD_LOG("cas_db","D:\cas_db\cas_db_Log.LDF")
6.重新將該資料庫置為單使用者模式。
7.再次嘗試使用DBCCCHECKTABLE或DBCCCHECKDB命令檢查並修復資料庫中。
您好,是這樣的:
1.首先確認已經備份了.mdf和.ldf檔案。
2.在SQLServer中新建一個同名的資料庫,然後停止SQLServer服務。
3.用原有的.mdf和.ldf檔案覆蓋新建資料庫對應的.mdf和.ldf檔案。
4.重新啟動SQLServer服務,這是應該會看到這個資料庫處於置疑(Suspect)狀態。
5.在SQL查詢分析器中執行以下命令,以允許更新系統表:usemastergosp_configure"allowupdates",1reconfigurewithoverridego。
6.將這個資料庫置為緊急模式:updatesysdatabasessetstatus=32768wherename="db_name"go。
7.使用DBCCCHECKDB命令檢查資料庫中的錯誤:DBCCCHECKDB("db_name")GO。
8.如果DBCCCHECKDB命令失敗,請轉至第10步,否則先將資料庫置為單使用者模式,再嘗試對其進行修復:sp_dboption"db_name","single
user","true"DBCCCHECKDB("db_name",REPAIR_ALLOW_DATA_LOSS)GO
如果在執行DBCCCHECKDB("db_name",REPAIR_ALLOW_DATA_LOSS)命令時提示說資料庫未處於單使用者模式狀態的話,則重新啟動SQLServer服務,然後繼續嘗試。
9.如果DBCCCHECKDB("db_name",REPAIR_ALLOW_DATA_LOSS)命令失敗,請轉至第10步,否則若成功修復了資料庫中的錯誤:
重新執行DBCCCHECKDB("db_name")命令,確認資料庫中已沒有錯誤存在。
清除資料庫的置疑狀態:sp_resetstatus"db_name"
清除資料庫的單使用者模式狀態:sp_dboption"db_name","singleuser","false"
重新啟動SQLServer服務,如果一切正常的話,則資料庫已經成功恢復。
10.如果以上步驟都不能解決問題的話,請參考附件中的文件嘗試透過重建事務日誌來恢復資料庫中的資料。如果您只有MDF檔案,問題就更加複雜一些,我們需要直接重建事務日誌了:
1.在SQLServer中新建一個同名的資料庫,然後停止SQLServer服務。
2.用原有的ldf檔案覆蓋新建資料庫對應的.mdf檔案,將其日誌檔案(.ldf)刪除。
3.啟動SQLServer服務,並將資料庫置為緊急模式(同上:步驟5和步驟6)。
4.停止並重新啟動SQLServer服務。
5.執行以下命令重建資料庫日誌檔案:(下面是個示例,您要用您實際的資料庫名)
DBCCREBUILD_LOG("cas_db","D:\cas_db\cas_db_Log.LDF")
6.重新將該資料庫置為單使用者模式。
7.再次嘗試使用DBCCCHECKTABLE或DBCCCHECKDB命令檢查並修復資料庫中。