為何說是無聊的記錄呢? 因為事先把問題想復雜了,事后發現的時候覺得更是無聊的行為。還是寫下來,畢竟很少弄這么無聊的事情。 事情起因是需要給服務器做性能基數(baseline),用sqldiag提取了大量的log信息,當然這里的數據庫日志并不是指ldf文件。當我打
為何說是無聊的記錄呢?
因為事先把問題想復雜了,事后發現的時候覺得更是無聊的行為。還是寫下來,畢竟很少弄這么無聊的事情。
事情起因是需要給服務器做性能基數(baseline),用sqldiag 提取了大量的log信息,當然這里的數據庫日志并不是指ldf文件。當我打開SQL 2005或2008的對象資源管理器-->管理-->SQL Server 日志察看發現日志大約有百萬行,當然原因我就不說了。
日志log數據太大怎么辦?
先查看日志log如何被調用的,在TSQL中執行
顯示結果為
有了存檔號,接著查看某一個日志文件異常大的log內容(圖中的異常日志已經被清除了,所以這里記錄的時候暫且認為存檔#為4的日志是異常大文件)
接下來看看存檔4的log內容,在TSQL中執行
通常結果會返回如下圖的內容
話說到這兒,才開始我那愚蠢且無聊的做法。(直到現在我仍然認為這個做法相當怪異)
因為這個日志log內容非常大,大約為數百萬行,導致用sqldiag提取的__sp_sqldiag_Shutdown.OUT文件大小有近2G。于是有清除這個日志的想法,因為已經備檔(備檔的方式是將內容存為文本),所以可以清除日志。
于是我就想找到這個log內容是存放在數據庫MASTER的哪個表中,以便于干掉它。找來找去,只讓我看到xpstar.dll 和xpstar90.dll這些信息。既然是調用動態鏈接庫,我也要看看這個dll的內容,于是從網上下載Reflector 和Depends 進行反編譯,接著反編譯出錯。
到這里,其實GOD已經提醒我該走出去呼吸一下新鮮空氣再回來思考,結果我沒有那樣做。這段過程大約花費近3個小時時間,用《 Becoming a Technical Leader 》里的話說,我已經進入了神游狀態,當然我自己絲毫沒有發覺。
隔日清晨,來到辦公室,當我下意識的打開系統中下面路徑時,“密碼”被破譯了。其實只要刪除log目錄下ERRORLOG以及一系列ERRORLOG.1文件即可。
X:/Program Files/Microsoft SQL Server/MSSQL10.MSSQLSERVER/MSSQL/Log
其實我可以對自己說一句“神啊”,從結果看過程原來一切都是那么簡單。
當然,為了清除這個日志log內容,也有問一些朋友,不過他們都誤以為我要清除ldf日志文件。寫下來也是告訴自己:方向錯了,停下來就是前進!!
聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com