WEB开发网
开发学院数据库MSSQL Server 内部 SQL Server 诊断工具,第 1 部分:PSSDiag 阅读

内部 SQL Server 诊断工具,第 1 部分:PSSDiag

 2007-11-11 04:46:46 来源:WEB开发网   
核心提示: 收集服务程序在这一节中,我将会详细论述收集服务程序的有关内容,内部 SQL Server 诊断工具,第 1 部分:PSSDiag(4),包括其工作方式和使用方法,如果您使用 DiagConfig 来控制和配置收集服务程序,如上所述,最简便的方法是一旦支持事件结束,通常您将不需要直接与收集服务程序进行交互,但仍然需要理

收集服务程序

在这一节中,我将会详细论述收集服务程序的有关内容,包括其工作方式和使用方法。如果您使用 DiagConfig 来控制和配置收集服务程序,通常您将不需要直接与收集服务程序进行交互,但仍然需要理解其工作方式。

收集服务程序是一个本机代码应用程序,它可以作为控制台应用程序或服务程序来运行。DiagConfig 总是将其作为服务程序来运行。这就使该程序可以在远程计算机上进行配置和控制,并使得用户可以从主机中注销而不会停止诊断信息的收集(用户注销时所有非服务应用程序都会被停止)。

无论收集程序是如何启动的,它总会将重要的状态信息写入主机的应用程序事件日志,每个日志记录中的 Source(来源)列都会被设置为收集服务程序的名称 - 默认设置为“PSSDIAG”。如果作为控制台应用程序启动,它也会将此信息写入系统控制台。任何错误或其他重要消息都会以红色显示。

另外,所有状态信息和内部诊断信息都会被写入收集程序的日志文件,默认文件为 ##PSSDiag.log。此文件将会包含一个写入控制台和应用程序日志的状态信息父集,通常被 Microsoft 产品支持服务用来解决与 PSSDiag 本身相关的问题。

如果没有另外进行重定向,从收集服务程序产生的子进程得到的输出结果(例如自定义诊断信息)将被捕获到一个名为 ##console.log 的文件中。因为 Windows 命令处理器默认进行 ANSI 输出,所以此文件是一个 ANSI 文件,即使 PSSDiag 本身为 Unicode 应用程序。

配置文件

一旦收集程序启动,它将会读取传递给它的配置信息和启动参数。如果是作为一个服务程序运行,它会从注册表中获取其启动参数。如果是作为一个控制台应用程序运行,它会从命令行获取其启动参数。

PSSDiag 支持从三种不同的来源读取其配置信息:INI 文件、xml(标准化越来越近了) 文档或注册表(您可以通过 /I 启动参数来指定一个配置文件)。如果没有在启动参数中指定配置文件,那么收集程序会首先检查 PSSDiag.ini 文件,如果此文件存在将加载它。INI 格式是一个简单的名称-值对文件,该格式类似以下示例:

[.]SetupVer=3.0.0.5CaseNumber=SSVer=8Instance=*WindowsAuth=1Username=SQLDiag=0SQLDiagStartup=0SQLDiagShutdown=1EventLogs=0EventLogsStartup=0EventLogsShutdown=1Profiler=1ProfilerEvents=76,75,92,94,93,95,16,22,21,33,67,55,80,61,69,25,59,60,27,58,14,15,81,17,10,11,35,36,37,19,50,12,13...

此格式非常易懂:每个布尔开关的值均被指定为 10;具有多个值的设置要么是多个单独的 INI 关键值,要么以逗号分隔等。

INI 中的节标题([.] 以上)代表目标计算机名称,您可以设置具有多台目标计算机的单个文件,每台计算机在 INI 中都有属于自己的一节。这项强大的功能使您可以使用单个 PSSDiag 实例非常方便地从多台计算机中收集诊断信息。收集程序启动后,它将会清点配置文件中列出的计算机并同时从这些计算机中收集信息。

DiagConfig 将只使用 xml(标准化越来越近了) 配置文件和注册表;它不会对 INI 配置文件进行读写。通常只有 Microsoft 产品支持服务工程师才会对 INI 配置文件进行读写。由于 PSSDiag.ini 是默认的配置文件名称,这就为 Microsoft 产品支持服务提供了一种方便的机制来暂时替代它需要收集程序收集的那些诊断信息,而不会影响任何您可能已经配置的诊断信息。一旦支持事件结束,您就可以安全地删除此 INI 文件,以便收集服务程序读取 DiagConfig 存储在注册表中的配置值。

如果 PSSDiag.ini 不存在,收集程序接下来将会查找 PSSDiag.xml(标准化越来越近了)。PSSDiag xml(标准化越来越近了) 配置文件格式在语义上与其 INI 格式等同,该格式类似以下示例:

内部 sql server<font class=reblank  style=(WINDOWS平台上强大的数据库平台) 诊断工具,第 1 部分:PSSDiag(图六)" />

...

 

xml(标准化越来越近了) 架构 pssdiag_schema.xsd 用来确保该格式符合收集程序的期望。如果您使用 xml(标准化越来越近了) 编辑器来编辑 PSSDiag xml(标准化越来越近了) 配置文件,此架构将会保护该文件,使其不发生会扰乱或打断收集程序的改变。

xml(标准化越来越近了) 格式与 INI 格式相比的主要优点在于,使用 xml(标准化越来越近了) 格式您可以为安装在给定计算机上的不同 sql server(WINDOWS平台上强大的数据库平台) 实例收集不同的诊断信息。而使用 INI 格式,您必须从特定计算机上的所有目标实例中收集相同的诊断信息。您可以选择是从单个实例还是全部实例中收集信息,但必须从选定的所有实例中收集相同的诊断信息。xml(标准化越来越近了) 格式则不是这样。因为每个实例在 xml(标准化越来越近了) 文档中都有属于自己的一节,所以每个实例都可以具有不同的诊断信息配置。

如上所述,DiagConfig 将只使用 xml(标准化越来越近了) 配置文件和注册表配置。通常情况下,除非您已使用 Microsoft 产品支持服务来帮助解决问题,否则,在与收集服务程序进行交互时您只能使用 xml(标准化越来越近了) 配置信息。

如果 PSSDiag.xml(标准化越来越近了) 不存在,收集程序接下来将会检查注册表以获得配置信息。DiagConfig 会将您在其中指定的配置信息以 xml(标准化越来越近了) 格式存储到注册表项 HKLM\Software\Microsoft\SQLDiagEx\PSSDiag 之下。注册表配置设置的格式规则与 xml(标准化越来越近了) 配置文件的格式规则相配,未经 Microsoft 允许您不应直接修改此信息。如果您需要修改收集程序的配置信息,请使用 DiagConfig。

因为 DiagConfig 总是将配置信息写入注册表,并且 INI 或 xml(标准化越来越近了) 配置文件优先于注册表中的配置信息,所以在使用 DiagConfig 对数据收集进行配置时,您会希望确保不存在 xml(标准化越来越近了) 或 INI 配置文件。如上所述,最简便的方法是一旦支持事件结束,就删除您从 Microsoft 产品支持服务工程师那里接收的任何配置文件。

上一页  1 2 3 4 5 6 7  下一页

Tags:内部 SQL Server

编辑录入:coldstar [复制链接] [打 印]
赞助商链接