前兩天一大早就收到磁盤被占用滿了,應用無法正常使用。


登錄服務器查看到是因為事務日志導致磁盤爆滿

找到原因開始清理事務日志,執行了下面語句結果沒有生效日志文件還是沒有縮小,我就重啟了SQL服務想著重啟后來執行清理SQL,結果就搞出了大事數據庫顯示在恢復中。
USE 數據庫名
GO
ALTER DATABASE 數據庫名 SET RECOVERY SIMPLE WITH NO_WAIT
GO
ALTER DATABASE 數據庫名 SET RECOVERY SIMPLE --簡單模式
GO
USE 數據庫名
GO
DBCC SHRINKFILE (N'數據庫邏輯文件名稱_log' , 11, TRUNCATEONLY)
GO
USE 數據庫名
GO
ALTER DATABASE 數據庫名 SET RECOVERY FULL WITH NO_WAIT
GO
ALTER DATABASE 數據庫名 SET RECOVERY FULL --還原為完全模式
GO
這個時候是表面鎮靜,內心慌的一批MD要是數據庫壞了就麻煩了。
當數據庫顯示在恢復中時不要操作等待數據庫恢復正常,恢復過程時間較長。
但我的情況在數據庫恢復正常后還是不能使用。我就使用終極絕招了附加數據庫操作。
附加數據庫時間取決于你的數據庫大小,我的數據庫有1T的數據庫等一個半小時左右。
1.停用SQL Server服務
2.將數據庫的.mdf和.ldf文件更名
3.啟用SQL Server服務
4.右鍵刪除數據庫
5.將更名的.mdf和.ldf文件名稱改回原來的數據庫文件名。
6.在管理工具中重新附加數據庫,附加成功后故障修復。
數據庫附加成功后,最后再執行事務日志清理任務。
到此數據庫就恢復正常了。