最近一個程序出了問題,新數據插不進數據庫,但並無報錯,經檢查發現是數據庫服務器中數據庫日誌文件過大佔滿內存所致,所以手動清理了一下日誌文件,並新建了一個清理作業,以後每個月自動清理日誌文件:
清理日誌文件SQL語句:
USE [master]
GO
ALTER DATABASE 數據庫名稱 SET RECOVERY SIMPLE WITH NO_WAIT
GO
ALTER DATABASE 數據庫名稱 SET RECOVERY SIMPLE --簡單模式
GO
USE 數據庫名稱
GO
DBCC SHRINKFILE (N'數據庫日誌文件邏輯名稱' , 2, TRUNCATEONLY) --設置壓縮後的日誌大小爲2M,可以自行指定;數據庫日誌文件邏輯名稱爲數據庫屬性中的邏輯名稱,通常是數據庫名稱_log
GO
USE [master]
GO
ALTER DATABASE 數據庫名稱 SET RECOVERY FULL WITH NO_WAIT
GO
ALTER DATABASE 數據庫名稱 SET RECOVERY FULL --還原爲完全模式
GO
新建作業自動清理:
1.展開SQL Server 代理,右鍵新建作業
2.填寫作業名稱,所有者和類別一般直接默認就行
3.點擊左側步驟選項卡,點擊新建按鈕新建步驟
填寫步驟名稱,類型默認T-SQL,選擇需要清理日誌文件的數據庫,將數據庫日誌清理語句粘貼到命令輸入框
如果需要清理多個數據庫的日誌文件,重複新建多個步驟即可
4.點擊左側計劃選項卡,點擊新建按鈕新建計劃
填寫計劃名稱,設置執行頻率
全部確定提交後,作業就開始生效了。