只有mdf文件時,應當如何進行恢復
1、新建一個同名數據庫,指定數據庫存儲位置(ps:如果你之前的數據庫位於 D:\數據 這個目錄,這次也要建一個相同的目錄,避免在還原數據時候,讀取到舊目錄導致報錯)。
2、停止數據庫服務,刪除新建數據庫的log跟數據文件
將老的數據庫文件丟進來(考慮到磁盤讀寫的速度,放在一個磁盤內數據拷貝比較快一點)
3、啟動數據庫服務
數據庫變為置疑或可疑狀態。然后在查詢分析器中運行:
alter database 無日志文件的數據庫名稱 set emergency
設置為緊急狀態。
4、再運行:
alter database 無日志文件的數據庫名稱 set single_user
或者:
Sp_dboption '無日志文件的數據庫名稱', 'single user', 'true'
設置為單用戶模式。
5、檢查並重建日志文件,運行:
dbcc checkdb('無日志文件的數據庫名稱',REPAIR_ALLOW_DATA_LOSS)
這個時間比較長。耐心等待!期間會有報錯:--is_broker_enabled停止,斷開數據庫連接之類報錯,然后再運行:
dbcc checkdb('無日志文件的數據庫名稱',REPAIR_REBUILD)
進行修復。如果沒有錯誤,可以跳過。
6、恢復成多用戶模式
alter database 無日志文件的數據庫名稱 set multi_user(報錯的話 將sql_server重新打開一次,然后再次執行就好了)
或者:
Sp_dboption '無日志文件的數據庫名稱', 'single user', 'false'
刷新數據庫,你就可以看到已經修復好的數據庫了。