SQL Server提供了一个特别的命令工具sqldiag,帮助收集用于定位SQL Server问题的信息。你可以在其它SQL Server可执行命令所在目录相同的binn目录下找到该文件。默认目录是\Program Files\Microsoft SQL Server\MSSQL\Binn。当SQL Server正在运行时,你从命令提示符执行sqldiag,这个工具收集了大量的操作系统,硬件配置,SQL Server配置等信息。Sqldiag写到一个叫做sqldiag.txt的输出文件(默认路径是SQL Server安装目录的\log目录下)。当你启用了黑盒跟踪,然后执行sqldiag拷贝黑盒文件到sqldiag.txt文件相同的目录下。
SQL Server的sqldiag工具提供了一些参数控制收集特定的信息。完整信息可参阅BOL,但-X和-O outeput_file参数与此有关。
-X参数,让sqlidag不要包含错误日志到sqldiag.txt文件。默认情况下,SQL Server记录的错误日志文件重启仅当SQL Server重启时,错误日志文件增长直到你下次停止并重启SQL Server服务。默认情况下,SQL Server维护着六个错误日志文件,所以,当你启动SQL Server服务,之前的错误被拷贝到errorlog.1,而之前的errorlog.1被拷贝到errorlog.2,如此类推。如果你收集信息给你支持提供商,包含一些之前的错误日志的内容可能是一件好事。但是只是自己定位问题时,我发现采集所有的错误日志信息使得sqldiag.txt文件太复杂。我一般调用sqldiag用-X选项。
-O output_file参数让你自己指定一个sqldiag的输出文件名而不是sqldiag.txt。如果你指定了-O选项,sqldiag重新命令blackbox.trc和blackbox_1.trc文件为你指定的output_file名称。例如,你指定output_file为diagreport.txt,sqldiag重命令这个跟踪文件diagreport.trc和diagreport_1.trc,相应的。
你的执行sqldiag时,即使SQL Server没有运行,你启用的黑盒文件仍然可用。当SQL Server因为错误而崩溃时,这是有用的;黑盒跟踪包含在失败之前查询运行的大量记录。在重启你的服务器之前运行sqldiag能给你为什么服务停止运行的线索。
详细有关sqldiag的资料,请参见MSDN:http://msdn.microsoft.com/library/ms162833
本文转自UltraSQL51CTO博客,原文链接:http://blog.51cto.com/ultrasql/1583070 ,如需转载请自行联系原作者