- 工信部備案號 滇ICP備05000110號-1
- 滇公安備案 滇53010302000111
- 增值電信業務經營許可證 B1.B2-20181647、滇B1.B2-20190004
- 云南互聯網協會理事單位
- 安全聯盟認證網站身份V標記
- 域名注冊服務機構許可:滇D3-20230001
- 代理域名注冊服務機構:新網數碼
歡迎來到藍隊云技術小課堂,每天分享一個技術小知識。
最近我發現 SQL Server 錯誤日志文件占用了大量磁盤空間!今天分享一下清理錯誤日志文件的方法,希望也能幫到你們。
錯誤日志位置和問題
SQL Server 的錯誤日志文件默認存儲在如下路徑:
C:\\\\Program Files\\\\Microsoft SQL Server\\\\MSSQL.1\\\\MSSQL\\\\LOG
這個目錄下會有一組日志文件,分別是 ErrorLog 到 ErrorLog.6,共七個文件:
ErrorLog:當前正在寫入的日志文件。
ErrorLog.1 ~ ErrorLog.6:歷史存檔日志,按照先進先出的規則輪替。
隨著服務器運行時間的增加,這些日志文件會越來越大,尤其是錯誤頻繁時,很快就能占滿磁盤空間。如果不及時清理,空間可能直接告急。
解決方法:清理錯誤日志
別擔心,不需要手動刪除日志文件,這里有一個簡單且安全的方法:
1. 使用 T-SQL 刷新日志
執行以下命令刷新錯誤日志,SQL Server 會自動生成一個新的日志文件,并將現有日志存檔為歷史文件:
EXEC sp_cycle_errorlog;
每執行一次這條語句:
當前 ErrorLog 會被移到 ErrorLog.1。
ErrorLog.1 變成 ErrorLog.2,以此類推。
超過 ErrorLog.6 的文件會被 SQL Server 自動刪除。
注意: 為了徹底清理,可以連續執行 7 次,這樣所有舊日志文件都會被刷新。
2. 一次性清理所有日志
直接使用以下腳本,連續執行 7 次 sp_cycle_errorlog,確保日志完全刷新:
-- 刷新日志 7 次DECLARE @i INT = 0;
WHILE @i < 7BEGIN
EXEC sp_cycle_errorlog;
SET @i = @i + 1;END
執行完這個腳本后,再去日志目錄檢查一下,日志文件是不是已經變得非常干凈了!
設置自動化清理(可選)
為了避免以后忘記清理日志,可以創建一個定時任務,讓 SQL Server 自動刷新錯誤日志。
步驟如下:
1.打開 SQL Server 代理: 在 SQL Server Management Studio (SSMS) 中,找到目標服務器的 SQL Server 代理。
2.新建作業:
右鍵 “作業” > “新建作業”。
設置作業名稱,比如:Auto_Clear_ErrorLog。
3.添加步驟:
在作業步驟中,選擇 Transact-SQL 腳本 (T-SQL)。
輸入以下腳本:
EXEC sp_cycle_errorlog;
4.配置計劃:
設置作業的執行計劃,比如每天凌晨 2 點執行一次,定期清理日志。
注意事項
不要直接刪除日志文件!
手動刪除可能會導致 SQL Server 出現異常或日志記錄失敗,使用 sp_cycle_errorlog 是官方推薦的安全方法。
查看日志增長原因:
如果日志頻繁增長,可能是系統存在一些異常行為。比如,很多主機反復嘗試連接服務器失敗,這類問題需要重點排查并解決。
限制日志存檔數量:
在 SSMS 中右鍵服務器實例,選擇 “屬性” > “高級”,修改 “最大錯誤日志文件數”,避免占用太多磁盤空間。
藍隊云官網上擁有完善的技術支持庫可供參考,大家可自行查閱,更多技術問題,可以直接咨詢。同時,藍隊云整理了運維必備的工具包免費分享給大家使用,需要的朋友可以直接咨詢。
更多技術知識,藍隊云期待與你一起探索。
售前咨詢
售后咨詢
備案咨詢
二維碼
TOP