自動化收集SQLSERVER診斷信息
相信很多人都遇到過當SQLSERVER出現問題的時候,而你又解決不了需要DBA或者微軟售後支持工程師去幫忙解決問題,那麼他們一般需要你收集一些系統信息和SQLSERVER診斷信息。
而收集這些信息又需要圖形工具,又需要指令,步驟又非常復雜。
我們要按照步驟一步一步把需要的信息收集全,在收集的過程中,往往折騰幾次就頭痛了
解決問題的工具
這個問題隨著一個在SQL2005裡的工具的出現而得到了解決
這個工具可以自動收集很多信息,擴展了原來的應用,增強了其信息收集的能力
這個工具就是SQLDIAG.exe SQL代表:SQLSERVER DIAG 代表Diagnostic(診斷)
SQLDiag這個工具可以收集的信息有:
(1)Windows事件日志
(2)SQLSERVER ErrorLog,以及SQL配置信息,一些重要運行信息
(3)SQL曾經產生的DUMP文件
(4)服務器系統配置信息
(5)同時包含有系統和SQL性能計數器的性能日志
(6)服務器端Trace
這個工具可以幫助DBA自動打開服務器端Trace,比用SQLSERVER Profiler要安全多了
因為SQLSERVER Profiler屬於客戶端跟蹤工具,而且需要消耗系統資源跟服務器通信需要
進程間通信,而這個工具用的是服務器端Trace
SQLDiag工具默認安裝在:C:\Program Files\Microsoft SQL Server\90\Tools\Binn
C盤是我的SQLSERVER安裝路徑,大家安裝SQLSERVER不是選擇默認路徑的話可能跟我不一樣
使用工具
這個工具需要在命令行窗口運行,可以在命令行直接運行\SQLdiag.exe,工具會使用默認的配置,收集系統信息
把SQLDIAG.exe拖到cmd窗口,按回車鍵就可以啟動了,詳細步驟看下圖
當出現SQLDIAG Collection started. Press Ctrl+C to stop. 信息以後就按Crtl+C,終止這個工具的執行。
SQLDIAG 工具會在Binn目錄下產生三個XML文件,並且產生一個SQLDIAG子目錄,存放剛才收集的信息
使用默認配置(即Binn目錄下的SQLDiag.xml)只會收到:
(1)SQL errorlog文件內容,以及SQL配置信息和一些重要運行信息(XXXX_sp_sqldiag_Shutdown.out)
(2)SQL曾經產生的dump記錄(XXXX_SQLDUMPER_ERRORLOG.log)
(3)服務器系統配置信息(XXXX_MSINFO32.txt)
(4)SQL默認開啟的Default Trace文件(log_XXX.trc)
使用配置文件
你可以使用另外兩個SQLDiag自帶的XML配置文件SD_General.xml 和 SD_Detailed.xml,這兩個xml文件跟SQLDiag.exe在同一目錄下,
如果使用這兩個配置文件就能夠收集到SQL Trace和性能日志。
但是如果要使用這兩個配置文件所產生的文件就會比較大,放在SQL安裝目錄下就不再合適,
需要在SQLDiag裡指定輸出文件路徑。
例子 在cmd下輸入:
格式:SQLdiag.exe /I <configure_file> /O <output_directory>
我使用SD_General.XML配置文件,配置F:\SQLDIAOUT為輸出目錄,這個文件夾不用預先創建好,他最幫你自動創建
SQLdiag.exe /I SD_General.XML /O F:\SQLDIAOUT
運行的過程中能夠看到SQLdiag開啟Perfmon(AddingPerfmon counters)和Trace(Starting Profiler Trace)
當問題跟蹤完畢以後,再按Ctrl+C工具會停止日志收集。
有些信息是在工具關閉前收集的,所以可能要等一會才能完全停止
而在目錄下 F:\SQLDIAOUT目錄,可以看到以下信息
(1)SQL Trace文件(XXXX_sp_trace.trc)
(2)Windows事件日志(XXXX_applog_Shutdown.txt,XXXX_seclog_Shutdown.txt,XXXX_syslog_Shutdown.txt)
(3)Windows性能日志(SQLdiag.blg) 用性能監視器也打不開這個文件,要使用系統自帶的小工具
總結
實際上,兩個XML配置文件SD_General.xml 和 SD_Detailed.xml的主要區別是SD_Detailed.xml會在SQL Trace裡收集更多的事件,
所以輸出會要大很多。
DBA可以根據需要選擇其中一個
缺點:
SQLdiag的唯一缺點,是不會定期查詢系統管理視圖DMV,
所以建議自動化信息收集是SQLdiag(使用SD_General.xml 和 SD_Detailed.xml做配置文件),在加上一些
系統動態管理視圖作為輔助