前言碎語
關於對SQL SERVER 日志文件管理方面了解不多的話,可以參考我的這篇博客文章“MS SQL 日志記錄管理”,不過這篇文章只是介紹對SQL SERVER日志記錄的深入認知了解,並沒有提出如何管理日志文件的方案,如果你有興趣的話,倒不妨可以鑽研一下如何管理、提取日志記錄信息,這是數據庫精細化管理的一個方面,如果手頭管理的服務器過多,事情過多,你很難做到精細化管理!很多事情都忙不過來,需要時間去做!
問題現象
這幾天有台數據庫服務器一天會收到8封左右的告警郵件,大致內容如下:

DATE/TIME: 2013-8-4 9:19:47 DESCRIPTION: A user request from the session with SPID 194 generated a fatal exception. SQL Server is terminating this session. Contact Product Support Services with the dump produced in the log directory. COMMENT: (None) JOB RUN: (None)
通過查看錯誤日志記錄,查找具體原因時,需要找到具體日志文件,例如“C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\LOG\SQLDump5328.txt”
結果我在C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\下,發現有大量2011、2012年的生成的SQLDump.txt, SQLDump.log , SQLDump.mdmp文件,尤其是后綴為mdmp的文件,大小一般3M左右,結果我刪除了大量日期為2011年,2012年生成的SQLDump文件后,總共釋放了9GB多的空間,暴汗啊,也就是說日積月累,這類文件你不搭理的話,會由量變到質變,達到一個驚人的量。
解決方案
由於近期生成的的這類日志文件是有價值的,有助於你定位錯誤,所以最好不要刪除,這類日志文件我建議一般保留一個星期的周期,超過一個星期的這類日志文件,可以通過下面一些方案處理:
1: 定期手工檢查,刪除這些日志文件。這是下下策,誰能保證你不會忘記這事? 人工成本很貴的!
2: 寫一個dos的批處理文件,然后通過Task Scheduler定期執行清理
3: 寫一個dos的批處理文件,在SQLAgent 調用 CMDEXEC 完成批處理作業
4:通過powershell腳本來處理。