當數據庫置疑或者長期處於recovery狀態,通過sp_resetstatus存儲過程修復無效,可以採用丟棄數據庫日誌文件,重建日誌文件的方法來修復數據庫,具體辦法如下。
--置數據庫的緊急模式
alter database dbname set emergency
go
go
--置數據庫爲單用戶模式
alter database dbname set single_user with rollback immediate
go
use master
go
alter database dbname set single_user with rollback immediate
go
use master
go
--重建數據庫日誌文件
alter database dbname Rebuild Log on
(name=dbname_log,filename='D:\Log\dbname_log.LDF')
go
alter database dbname Rebuild Log on
(name=dbname_log,filename='D:\Log\dbname_log.LDF')
go
--最後設置數據庫爲多用戶模式。
alter database dbname set multi_user
alter database dbname set multi_user
通過以上方法修復數據庫後,可以dbcc checkdb一下數據庫,如果發現頁級錯誤,可以通過以下命令修復。
dbcc checkdb(dbname,REPAIR_ALLOW_DATA_LOSS)
dbcc checkdb(dbname,REPAIR_REBUILD)
dbcc checkdb(dbname,REPAIR_REBUILD)