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