前兩天一大早就收到磁盤被占用滿了,應(yīng)用無法正常使用。
登錄服務(wù)器查看到是因?yàn)槭聞?wù)日志導(dǎo)致磁盤爆滿
找到原因開始清理事務(wù)日志,執(zhí)行了下面語句結(jié)果沒有生效日志文件還是沒有縮小,我就重啟了SQL服務(wù)想著重啟后來執(zhí)行清理SQL,結(jié)果就搞出了大事數(shù)據(jù)庫顯示在恢復(fù)中。
USE 數(shù)據(jù)庫名
GO
ALTER DATABASE 數(shù)據(jù)庫名 SET RECOVERY SIMPLE WITH NO_WAIT
GO
ALTER DATABASE 數(shù)據(jù)庫名 SET RECOVERY SIMPLE --簡單模式
GO
USE 數(shù)據(jù)庫名
GO
DBCC SHRINKFILE (N'數(shù)據(jù)庫邏輯文件名稱_log' , 11, TRUNCATEONLY)
GO
USE 數(shù)據(jù)庫名
GO
ALTER DATABASE 數(shù)據(jù)庫名 SET RECOVERY FULL WITH NO_WAIT
GO
ALTER DATABASE 數(shù)據(jù)庫名 SET RECOVERY FULL --還原為完全模式
GO
這個(gè)時(shí)候是表面鎮(zhèn)靜,內(nèi)心慌的一批MD要是數(shù)據(jù)庫壞了就麻煩了。
當(dāng)數(shù)據(jù)庫顯示在恢復(fù)中時(shí)不要操作等待數(shù)據(jù)庫恢復(fù)正常,恢復(fù)過程時(shí)間較長。
但我的情況在數(shù)據(jù)庫恢復(fù)正常后還是不能使用。我就使用終極絕招了附加數(shù)據(jù)庫操作。
附加數(shù)據(jù)庫時(shí)間取決于你的數(shù)據(jù)庫大小,我的數(shù)據(jù)庫有1T的數(shù)據(jù)庫等一個(gè)半小時(shí)左右。
1.停用SQL Server服務(wù)
2.將數(shù)據(jù)庫的.mdf和.ldf文件更名
3.啟用SQL Server服務(wù)
4.右鍵刪除數(shù)據(jù)庫
5.將更名的.mdf和.ldf文件名稱改回原來的數(shù)據(jù)庫文件名。
6.在管理工具中重新附加數(shù)據(jù)庫,附加成功后故障修復(fù)。
數(shù)據(jù)庫附加成功后,最后再執(zhí)行事務(wù)日志清理任務(wù)。
到此數(shù)據(jù)庫就恢復(fù)正常了。