自動化收集SQLSERVER診斷資訊
原文地址:http://www.cnblogs.com/lyhabc/archive/2013/02/13/2911011.html
相信很多人都遇到過當SQLSERVER出現問題的時候,而你又解決不了需要DBA或者微軟售後支援工程師
去幫忙解決問題,那麼他們一般需要你收集一些系統資訊和SQLSERVER診斷資訊。
而收集這些資訊又需要圖形工具,又需要指令,步驟又非常複雜。
我們要按照步驟一步一步把需要的資訊收集全,在收集的過程中,往往折騰幾次就頭痛了
解決問題的工具
這個問題隨著一個在SQL2005裡的工具的出現而得到了解決
這個工具可以自動收集很多資訊,擴充套件了原來的應用,增強了其資訊收集的能力
這個工具就是SQLDIAG.exe
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做配置檔案),在加上一些
系統動態管理檢視作為輔助