采集自动组合(SQLdiag是一个收集SQLServer实例诊断数据的多用途实用工具)

优采云 发布时间: 2021-10-22 00:04

  采集自动组合(SQLdiag是一个收集SQLServer实例诊断数据的多用途实用工具)

  SQLdiag 是一种多用途实用程序,用于采集 SQL Server 实例的诊断数据,并可作为控制台应用程序或服务运行。SQLdiag 可以帮助您采集 SQL Server Profiler 跟踪记录、Windows 性能监视器日志,并通过配置管理器的可扩展接口输出不同的 VBScript、T-SQL 和 DOS 脚本。SQLdiag 采集的数据可以通过 SQL Nexus 导入到 SQL Server 数据库中。SQL Nexus 是一个 GUI 工具,它以报告格式提供采集到的数据的聚合视图。

  SQLdiag 是一个命令行实用程序,默认位于 C:\Program Files\Microsoft SQL Server\110\Tools\Binn。您可以在 3 种模式下运行 SQLdiag:

  在快照模式下使用 SQLdiag

  当 SQLdiag 在快照模式下运行时,它会采集所有配置的诊断数据的快照,然后自动关闭。如果在命令提示符窗口中执行 SQLDIAG /X,SQLdiag 将在 Binn 文件夹中创建一个 SQLDIAG 文件夹,其中收录所有采集的数据。您还将找到一个“内部”文件夹,其中收录该工具创建的日志文件。这些文件与 XML 配置文件一起使用,该文件用于采集其他文件中的数据。当您想要快速获取 SQL Server 实例状态的快照时,这种采集数据的方法非常有用。您将获得过多的 SQL Server 和 Windows 配置信息、最近遇到的错误、数据库引擎经历的等待等等。数据采集​​完成后,工具会提示“ SQLDIAG 采集完成。Collector exiting”自动关闭。默认快照数据采集如下信息:

  使用 SQLdiag 作为命令行应用程序

  在查看SQLdiag数据采集之前,首先要了解SQLdiag配置文件,才能正确配置不同的数据采集器。图 11-1 显示了 SQLDIAG.XML 配置文件的关键元素的屏幕截图:

  

  SQLdiag 配置文件的关键元素

  您可以通过 XML 模板控制 SQLdiag 采集器。每个 采集器 都可以使用、启用或禁用。不要删除 XML 文件中的采集器,因为如果 XML 文件不匹配,SQLdiag 将无法加载 XSD。如果你想知道CustomDiagnostics变量的内幕,我会在后面的“使用SQLdiag配置管理器”中讲到。以下代码显示了 SQLdiag 可以接受的所有参数:

  用法:sqldiag [开始| 停止 | STOP_ABORT] [/O 输出路径] [/I cfgfile] [/M machine1

  [machine2 machineN]|@machinelistfile] [/Q] [/C#] [/G] [/R] [/U] [/N #] [/A appname]

  [/T {tcp[,port]|np|lpc|via}] [/X] [/L] [/B​​ YYYYMMDD_HH:MM:SS] [/E YYYYMMDD_HH:MM:SS]

  现在我们来看看这些参数是如何使用的,以及一些防止数据采集成为性能下降帮凶的最佳实践。

  SQLdiag 参数列表

  这里有两个例子:

  SQLDIAG /OD:\SQLDIAG_Data\ /G /B 20121225_00:01:00 /E +02:00:00 ------------ 告诉SQLdiag在20121225_00:01:00开始采集,2小时之后终止,输出路径也指定了,/G会跳过连接检查,命令提示窗口会显示“SQLDIAG Begin time 20121225_00:01:00 specified.Waiting”,说明SQLdiag初始化成功。

  SQLDIAG /OD:\SQLDIAG_Data\ /A DemoDiag /Q /ID:\SQLDIAG_Custom.xml---------------指示SQLdiag使用配置文件采集数据,使用文件压缩,并显示应用程序名称 DemoDiag 并以静默模式运行。SQLdiag 初始化成功后会提示如下信息:

  DIAG$DemoDiag 采集器版本

  重要提示:请等到您看到“采集开始”后再尝试

  重现您的问题

  SQLdiag 控制台输出和冗长的日志可以在输出路径的内部文件夹中找到,分别对应于文件##console.log 和##SQLDIAG.LOG。当工具失败或不符合预期时,此文件链可以提供有关失败原因的更多见解。不要使用命令提示窗口的关闭按钮停止数据采集进程,这会导致Profiler跟踪或PerfMon文件成为孤儿。可以使用命令 sp_trace_setstatus 停止探查器跟踪。

  使用 SQLdiag 作为服务

  您可以使用 /R 参数将该工具注册为服务,使用 /U 取消注册该服务,使用 /A 将 SQLdiag 注册为唯一命名的服务。以下命令将 SQLdiag 注册为名为 DIAG1 的服务: SQLDIAG /R /A DIAG1

  图 11-2 显示了注册为服务的属性。使用 /A 参数时,服务名称具有前缀 DIAG$;如果仅使用 /R,则该服务名为 SQLDIAG,如图 11-3 所示。

  

  请注意,服务注册是使用本地系统的登录帐户完成的。您需要将服务帐户更改为具有 Windows 管理员权限和 SQL Server 实例 sysadmin 权限的帐户。接下来,您必须决定要指定哪些参数。在以下示例中,SQLdiag 被注册为服务:

  'C:\Program Files\Microsoft SQL Server\110\Tools\Binn\sqldiag.exe' /R /IC:\SQLDIAG_Data\SQLDIAG_Custom.XML /O'C:\SQLDIAG_Data'

  服务注册成功会报“SQLDIAG Service installed. Exiting”信息。在Windows Application Event Log中可以看到SQLdiag服务的报告,如图11-4所示:

  

  在故障转移群集上配置和执行 SQLdiag

  使用 Diag Manager 为 SQL Server FCI(故障转移集群实例)配置数据包时,需要记住以下几点:

  在多实例故障转移群集上使用默认配置执行 SQLdiag 时,命令窗口将显示大量标记为红色的错误。这是因为默认配置文件 SQLDIAG.XML 尚未更改为来自特定 FCI 的 采集 数据。SQLdiag 将自动发现集群并从每个虚拟机和实例采集日志和配置信息。该错误显示在命令窗口中是因为 SQLdiag 尝试连接到每个虚拟机上的每个实例,这会导致多次失败。在这种情况下,请使用所需的目标虚拟机名称配置 SQLDIAG.XML,或者忽略错误。日志文件 (##SQLDIAG.LOG) 通常可用于识别可以安全忽略的错误。一些可忽略的信息居然有短信”

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线