1. 程式人生 > >自動化收集SQLSERVER診斷資訊

自動化收集SQLSERVER診斷資訊

原文地址:http://www.cnblogs.com/lyhabc/archive/2013/02/13/2911011.html

相信很多人都遇到過當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做配置檔案),在加上一些

系統動態管理檢視作為輔助