一、介绍

1.1 管理包简介

Microsoft System Center Operations Manager 2007 R2提供了一种方式来监控重要的应用程序,比如Microsoft SQL Server,并在这些应用程序出现可能导致性能降级或功能完全丢失的问题时向管理员发出通知。监控以及警报的规则包含在管理包(Management Pack)之中,将管理包导入到 Operations Manager管理组后,Operations Manager 就立即根据管理包设置的默认配置和阈值开始监视对象。

每个管理包可能包含以下一项或所有内容:

•监视器,定向代理以跟踪管理组件的不同部件的状态。
•规则,定向代理以收集性能和发现数据,发送警报和事件等等。
•任务,定义代理或控制台可以执行的活动。
•知识,提供文字建议以帮助操作员诊断和解决问题。
•视图,为监视和管理此组件提供自定义的用户界面。
•报表,定义报告此管理组件相关信息的特定方式。
•对象发现,识别要监视的对象。
•运行方式配置文件,允许您在不同计算机上使用不同帐户运行不同的规则、任务、监视器或发现。

1.2 SQL Server管理包支持的配置

SQL Server管理包可以在以下版本的System Center Operations Manager中使用:

  • System Center Operations Manager 2007 SP1
  • System Center Operations Manager 2007 R2
  • System Center Operations Manager 2012

用于 Operations ManagerSQL Server 管理包设计为监视以下版本的 SQL Server

版本

 

32位操作系统上的 32 SQL Server

 

64位操作系统上的 64 SQL Server

 

64位操作系统上的 32 SQL Server

 

SQL Server 2005

支持

支持

支持(SQL Server 2005 SP2或更高版本)

SQL Server 2008

支持

支持

支持

SQL Server 2008 R2

支持

支持

支持

SQL Server 2012

支持

支持

支持

对于 SQL Server的每个版本,支持下列版本:

  • 数据中心(此版本仅适用于SQL Server 2008 R2
  • 企业
  • 开发人员
  • 标准
  • 速成

SQL Server管理包还为可安装在一个群集上的所有 SQL角色的群集安装提供了监视功能。支持监视群集安装具有下列限制:

  • 不支持在群集仲裁硬盘上安装 SQL Server,不建议使用此配置,如知识库文章280345所述。
  • 配置包含有多个网络名称资源的 SQL Server群集资源组可能意味着无法监视群集的 SQL Server资源。有关详细信息,请参阅知识库文章919594

1.3 导入SQL Server管理包

使用SCOM 2007 R2监视SQL Server,必须首先导入SQL Server管理包。最新版本的管理包可以从System Center Operations Manager 2007 Catalog System Center Operations Manager 2007目录)下载。

该管理包的最新版本提供对 Microsoft SQL Server 2005, SQL Server 2008, SQL Server 2008 R2 and SQL Server 2012的主动式和反应式监视。它监视各个 SQL Server组件,例如数据库引擎实例、数据库和 SQL Server代理。

此管理包提供的监视包括可用性和配置监视、性能数据收集以及默认阈值。可以将SQL Server 组件的监视集成到面向服务的监视方案中。

除了包含运行状况监视功能外,此管理包还包含仪表板视图、有关内嵌任务的大量知识,以及用于近实时地诊断并解决检测到的问题的视图。

导入SQL Server管理包之后,以下建议可帮助减少不必要的警报。

  • 如果监视未安装 SQL Server全文搜索服务的 SQL Server 2005实例,则禁用“SQL Server全文搜索服务监视器
  • 如果监视未安装 SQL Server全文筛选器后台程序启动器服务的 SQL Server 2008实例,则禁用“SQL Server全文搜索服务监视器
  • 此管理包中的某些监视器会检查服务的状态。这些监视器具有一个默认设置为“True”的参数,表示将检查那些设置为自动启动的服务。在群集中的服务器上,这些服务的启动类型设置为手动启动。如果监视SQL Server 群集,请将以下监视器的仅当服务启动类型为自动时生成警报参数更改为“false”
    • SQL Server Windows服务
    • SQL Server Reporting Services Windows服务
    • SQL Server Analysis Services Windows服务
    • SQL Server Integration Services Windows服务
    • SQL Server全文搜索服务监视器
    • SQL Server Agent Windows服务
    • SQL Server Windows服务
    • SQL Server Reporting Services Windows服务
    • SQL Server Analysis Services Windows服务
    • SQL Server Integration Services Windows服务
    • SQL Server全文搜索服务监视器
    • SQL Server Agent Windows服务

1.4 新建管理包进行自定义

和大多数管理包一样,SQL Server管理包是密封的,以防更改管理包文件中的任何原始设置。但您可以创建自定义,比如替代或新的监视对象,然后将它们保存到另外一个管理包。默认情况下,Operations Manager 将所有自定义保存到默认管理包。但是最佳做法是,为每个密封管理包创建一个自定义的管理包。

创建新管理包来存储替代具有下列优势:
•简化了将测试和预生产环境中创建的自定义导出到生产环境的过程。例如,可以只导出包含单个管理包的自定义的管理包,而不是导出包含多个管理包中的自定义的默认管理包。
•允许删除原始管理包而无需首先删除默认管理包。包含自定义的管理包依赖于原始管理包。这种依赖性要求删除包含自定义的管理包后,才能删除原始管理包。如果所有自定义都保存在默认管理包中,则必须删除默认管理包,然后才能删除原始管理包。
•跟踪和更新单个管理包的自定义变得更加简单。
•打开操作控制台,然后单击“管理”按钮。
•右键单击“管理包”,然后单击“新建管理包”。
•输入一个名称(例如,ADMP 自定义),然后单击“下一步”。
•单击“创建”。

二、可使用的报表

SQL Server 管理包中,预先定义了各种报表,我们可以使用这些报表来跟踪日、周或月中的趋势或变化。以下表格列出了可用的 SQL Server 报表。

2.1 容量信息报表

报表名称

描述

SQL Broker性能(SQL   Server 2005SQL Server 2008SQL   Server 2012

显示具有下列性能数据的图表:

  • Activation stored procedures   invoked per second statistics
  • Activation task limit reached
  • Activation task limit reached   per second statistics
  • Activation tasks aborted
  • Messages per second placed in   the queue
  • Transport messages per second   placed in the queue
  • SQL RECEIVEs per second
  • SQL SENDs per second
  • Tasks started per second
  • Total transaction rollbacks
  • Transport message fragment   RECEIVEs per second
  • Transport message fragments
  • Transport open connection   count statistics
  • Transport receive I/Os per   second
  • Transport Send I/Os per   second

SQL Server数据库计数器(SQL   Server 2005SQL Server 2008SQL   Server 2012

显示具有下列性能数据的图表:

  • Buffer cache hit ratio
  • Lock timeouts per second
  • Number of deadlocks per   second
  • SQL recompiles per second
  • Transactions per second

2.2 操作信息报表

报表名称

描述

SQL Server配置(SQL   Server 2005SQL Server 2008SQL   Server 2012

在提供的对象是 SQL DB引擎类型时,显示以下发现的属性。

  • 审核级别
  • 身份验证模式
  • 群集
  • 启用错误报表
  • 错误日志位置
  • 语言
  • Master 数据库位置
  • Master 数据库登录位置
  • Service Pack 版本
  • 复制分发数据库
  • 复制工作目录
  • 版本

SQL Server锁分析(SQL   Server 2005SQL Server 2008SQL   Server 2012

在提供的对象是 SQL DB引擎类型时,显示一个具有 Number of deadlocks per second性能项目的图表。

SQL Server ServicepackSQL   Server 2005SQL Server 2008SQL   Server 2012

在提供的对象是 SQL DB引擎或   ServicePackVersion类型时,显示以下发现的属性:

  • Service Pack版本
  • 版本

SQL用户活动(SQL   Server 2005SQL Server 2008SQL   Server 2012

对于每个选定的对象,显示一个具有 Logins   per second性能项目的图表。数据为一月中数天的累计。

5个死锁数据库(SQL Server 2005SQL   Server 2008SQL Server 2012

显示一个图表,该图表显示前五个死锁数据库以及一个详细列出数据库及其计数器值的表。

按天列出的用户连接(SQL Server 2005SQL   Server 2008SQL Server 2012

在提供的对象是 SQL DB引擎类型时,为每个选定的对象显示一个具有 SQL user connections性能项目的图表。

按高峰时段列出的用户连接(SQL Server 2005SQL   Server 2008SQL Server 2012

在提供的对象是 SQL DB引擎类型时,为每个选定的对象显示一个具有 SQL user connections性能项目的图表。数据为一月中数天的累计。

2.3 趋势信息报表

报表名称

描述

SQL数据库空间报表(SQL   Server 2005SQL Server 2008SQL   Server 2012

在提供的对象是 SQL数据库类型或从 SQL数据库派生的类型时,为每个选定的对象显示一个具有以下性能项目的图表:

  • 数据库可用空间 (MB)
  • Database free space in percentage
  • 数据库空间 (MB)
  • 事务日志可用空间 (MB)
  • Transaction log free space in percentage
  • 事务日志空间 (MB)

三、典型监视场景
 
 
在Operations Manager中使用SQL Server管理包来监视SQL Server,我们可以配置如下所示各种典型的监视场景:

 
3.1 监视阻塞的单个服务器进程 ID (SPID)
 
监视器定期查询每个数据库引擎实例以获取SPID 的列表,并查看是否发生了任何长时间的阻塞。如果检测到阻塞并且它超过了给定的阈值,则会更改状态并发出警报。
 
可以应用替代来更改用于确定阻塞是否长时间发生的持续时间值。默认的持续时间值是一分钟。
 
3.2 对SQL Server 2008和SQL Server 2008 R2分开配置
 
SQL Server 2008和SQL Server 2008 R2可以使用不同的监控和发现配置,要实现这一点,我们在不同的预定义的计算机组上进行修改:
•  SQL Server 2008 DB Engine Group – 包括SQL Server 2008和SQL Server 2008 SP1实例
•  SQL Server 2008 R2 DB Engine Group – 包括SQL Server 2008 R2实例
 
3.3 数据文件和日志文件空间的监视
 
管理包规则收集所有数据日志和日志文件的可用空间。我们可以使用各种报表跨多个数据库和很长一段时间查看此信息,以满足诸如问题管理和容量规划等功能的要求。
 
管理包监视器提供对总的数据文件和日志文件可用空间的监视。所产生的信息基于三个不同的层次:数据文件、文件组以及数据库。



默认情况下将启用基于百分比的阈值监视器。可以为警告状态和严重状态配置独立的值。
 
默认情况下,绝对 MB 大小阈值监视器被禁用,而且永远不会超过阈值,因为两个阈值都设置为值“-1”。如果需要使用绝对可用空间进行监视,必须更改这两个阈值。
 
3.4 同一个驱动器存在多个数据库
 
空间监视器的默认设置,在同一个驱动器上安装有多个数据库或日志文件时,可能会发出嘈杂的警报信息。在这种环境下,当可用空间小于阀值的时候,每一个数据库都会发出一个警报。为避免这种情况,关闭数据库文件和日志文件的空间监视器,而使用Base OS 管理包来监视硬盘空间。
 
3.5 长时间运行的代理作业
 
默认情况下,此方案在每一个版本的SQL Server管理包中完全启用(建立在每个 SQL Server 代理的基础上)。这就意味着,对于每个监视 SQL Server 代理,最大作业周期与阈值进行比较,而如果任何单个作业运行时间太长���则会引发警报。
 
此外, 管理包中提供了更详细的监视(建立在每个作业的基础上),但默认情况下禁用 SQL 作业的发现。要启用的对象发现如下所示:
•SQL Server 2012: 发现 SQL Server 2012代理作业
•SQL Server 2008: 发现 SQL Server 2008 代理作业
•SQL Server 2005: 发现 SQL Server 2005代理作业
 
3.6 SQL Server 数据库引擎实例的发现
 
所有托管系统中的 SQL Server 数据库引擎角色的独立实例和群集实例的发现都可以配置为排除特定的数据库引擎实例。
 
可以将替代应用于以下发现,以便指定发现应忽略的SQL Server 数据库引擎实例名称的“排除列表”:
 •SQL Server 2012: 发现SQL Server 2012数据库引擎(Windows Server)
•SQL Server 2008: 发现SQL Server 2008数据库引擎(Windows Server)
•SQL Server 2005: 发现SQL Server 2005数据库引擎(Windows Server)
 
3.7 数据库发现和状态监视
 
对于每个托管的数据库引擎,会通过一系列规则和监视器发现和监视其上的数据库。可以将替代应用于以下发现,以便指定发现应忽略的数据库名称的“排除列表”。
 •SQL Server 2012: Discover Databases for a Database Engine
•SQL Server 2008: Discover Databases for a Database Engine
•SQL Server 2005: Discover Databases for a Database Engine
 

当使用该脚本的所有规则和监视器具有匹配的参数时,将只为整组规则和监视器运行该脚本的一个实例。当使用该脚本的任何规则或监视器具有不同的参数值时,将会同时为每个具有与其余参数值不同的参数值的规则或监视器运行该脚本和脚本主机的一个独立实例。由于GetSQL2005DBSpace.js 会扫描所有 SQL 数据库,因此,如果频繁运行该脚本,可能会导致性能问题。
 
要防止性能问题,请确保以下列表中的规则和监视器使用相同的参数值。如果为任何这些规则或监视器替代参数,则应向其余规则或监视器应用相同的替代。
 •规则: •Microsoft.SQLServer.2005.Database.DBSpaceFree.Collection  DISABLED
•Microsoft.SQLServer.2005.Database.DBSpaceFreePercent.Collection  DISABLED
•Microsoft.SQLServer.2005.Database.DBSize.Collection  ENABLED
•Microsoft.SQLServer.2005.Database.TransactionLogSpaceFree.Collection DISABLED
•Microsoft.SQLServer.2005.Database.TransactionLogSpaceFreePercent.Collection DISABLED
•Microsoft.SQLServer.2005.Database.TransactionLogSize.Collection  DISABLED
 
•监视器: •Microsoft.SQLServer.2005.Database.DBSizePercentMonitor  DISABLED
•Microsoft.SQLServer.2005.Database.DBSizeMegabytesMonitor  DISABLED
•Microsoft.SQLServer.2005.Database.TransactionLogSizePercentMonitor DISABLED
 

如果发现与任何这些规则或监视器相关的性能问题,请考虑为所有这些规则和监视器将“超时(秒)”参数改为频率较低的时间间隔。

四、 已知问题及故障排除
 
4.1  PerfDataSource 无法解析计数器
 
 
问题:对于在代理托管的64 位操作系统上安装 32 位 SQL Server 实例,Operations Manager 日志中将会报表许多 10102 错误事件,它们指出 PerfDataSource 无法解析许多计数器,并且将会卸载该模块。在这些事件之后立即发生了一个来自 HealthService 的 1103 事件,指出一条或多条规则或者一个或多个监视器失败,并且卸载了失败的规则或监视器。
 
解决方法:无解决方法。如果是在64 位操作系统上监视安装的 32 位 SQL Server,则只有部分监视功能可用。这是因为,SQL Server 进程是 32 位,Operations Manager 代理进程是 64 位,而跨体系结构收集性能数据会受到限制。知识库文章891238 中说明了这些限制。
 
4.2  “运行状况服务脚本”失败
 
问题:在代理托管的并安装了SQL Server 2008(但未安装 Microsoft SQL Server 2005 后向兼容组件包中的 SQL-DMO)的系统上,脚本将无法执行,从而导致丢失与监视相关的数据和事件,例如以下这些:

日志名称:

Operations Manager

源:

运行状况服务脚本

事件 ID

4000

级别:

错误

描述:

GetSQL2008DBSpace.js   0

解决方法:按照本指南的其他要求一节中安装SQL-DMO 的步骤进行。

4.3  来自“运行状况服务模块”的11771事件
 

问题:代理托管的系统正运行SQL Server 管理包,但报告许多 11771 事件。请参阅以下 11771 事件的示例。

日志名称:

Operations Manager

源:

运行状况服务模块

事件 ID

11771

级别:

警告

描述:

获取服务状态时出错

错误:0x8007007b

详细信息:文件名、目录名或卷标语法不正确。

解决方法:SQL Server 全文搜索服务监视器预期将监视运行的 SQL Server 全文搜索服务。如果 SQL Server 全文搜索服务没有运行,则管理包将生成 1171 事件。要停止接收 11771 事件,可以禁用 SQL Server 全文搜索服务监视器。
 

4.4  SQL Server群集管理包发现脚本超时
 

问题:在群集上,如果有多个群集SQL Server 实例,则管理包发现脚本对于数据库引擎、Analysis Services 和 Reporting Services 可能会超时。您可能会看到类似于以下示例的事件。

日志名称:

Operations Manager

源:

运行状况服务模块

日期:

1/8/2009 5:33:23 PM

事件 ID

21402

任务类别:

级别:

警告

关键字:

经典

用户:

N/A

计算机:

SQL-Ex88S22.MPLAB.com

描述:

由于运行时间超过配置的超时时间 300秒,被迫终止以下于 5:28:24 PM启动的进程。

执行的命令:

"C:\Windows\system32\cscript.exe"   /nologo "DiscoverSQL2008DBEngineDiscovery.vbs"   {32FBB1E4-C6D1-0517-2F47-3DDA67D46A3B} {D1C9D03B-AAAE-D1FF-5ECA-6AF1981FE271}   SQL-Ex88S22.MPLAB.com SQL-Ex88S22.MPLAB.com SQL-Ex88S22 "排除:"

工作目录:

C:\Program Files\System Center Operations   Manager 2007\Health Service State\Monitoring Host Temporary Files 3\796\

描述:

一个或多个工作流受此影响。

工作流名称:Microsoft.SQLServer.2008.DBEngineDiscoveryRule.Server

实例名称:SQL-Ex88S22.MPLAB.com

实例   ID:{D1C9D03B-AAAE-D1FF-5ECA-6AF1981FE271}

管理组:MOMGroup1

解决方法:使用替代增加超时值。要标识新的超时值,请使用以下准则:(物理节点上的数据库引擎实例数乘以25 秒*)+(物理节点上的Analysis Services 实例数乘以 25 秒*)+(物理节点上的Reporting Services 实例数乘以 25 秒*)。
 
*此数字约等于脚本的运行时间。脚本在系统上的运行时间可能有所不同。
 
例如,对于某个群集 SQL Server 环境,在其中每个物理节点上分别有 12 个数据库引擎实例、10 个 Analysis Services 实例和 8 个 Reporting Services 实例,则新的超时估计值是根据公式 (12*25 秒)+(10*25 秒)+(8*25 秒) 计算出来的。默认超时值是 300 秒。在此例中,新的超时值应为 750 秒。
 

4.5  规则和监视器在SQL Server群集上无法可靠地工作

问题:在SQL Server 的群集安装上,基于事件日志中的事件的规则和监视器无法可靠地工作。出现此问题的原因是,根据操作系统的版本,以不同的方式在事件日志中生成 SQL Server 群集安装的日志。
 
解决方法:要解决此问题,必须满足以下先决条件:
 •确保导入最新的的SQL Server管理包版本。
•检查管理组的版本:



本文引用自:http://social.technet.microsoft.com/Forums/zh-CN/managementanalysis/thread/c807f094-861b-4d6a-856c-ae58a56506d3

 

更多详情请访问 多产品结合与应用场景论坛:http://social.technet.microsoft.com/Forums/zh-CN/category/productsinformation