技术开发 频道

SQL Server 2008自动化数据采集方法

      【IT168 技术】数据采集器是微软SQL Server 2008中增加的一个新特性,它的功能是从多台服务器上收集性能相关数据,并存储在中心数据仓库,然后通过SQL Server Management Studio(SSMS)中的报表把数据展现出来。本质上,数据收集器实现了对关键性能数据(比如,性能计数器,从动态管理视图DMW中抓取的数据快照和磁盘空间明细)的自动化采集。

  既然该特性从最新的动态管理视图中收集信息,所以它只能工作在SQL Server 2008中。尽管如此,值得注意的是,与许多其它有用的DBA功能不同,数据采集器并不仅限于企业版才支持。

  SQL Server 2008数据采集器的功能由以下几个组件组成:

  1.Msdb系统数据库用来存储所谓的数据采集组,其中包含有数据采集定义以及调度与采集数据有关的计划任务。除了包含有采集审计和历史信息查询,msdb数据库还存储SQL Server集成服务(SSIS)包,可以用来采集和上传数据。

  2.Dcexec.exe工具执行上面提到的SSIS包。它还负责管理数据采集组。

  3.管理数据仓库数据库存储采集的数据,而且包含用于采集管理的视图和存储过程。我们强烈建议这个数据库要与进行数据采集的服务器分离存储。

  4.SQL Server Management Studio 2008报表用来浏览收集到的数据。目前有三种内建的报表:服务器活动历史,磁盘用量汇总和查询统计历史。

  SQL Server Management Studio提供了配置数据采集的向导。要启动该向导,请在想要采集数据的服务器上展开管理节点。

  接下来,在数据采集节点上右键单击,然后选择“配置管理数据仓库”。你将会看到下面的对话框。如图1所示。

  如果你是第一次运行该向导,请选择“创建或者升级管理数据仓库”选项。该向导将按步骤引导你创建中心数据库,用来存储采集的数据。


图1

  在这个过程中,你需要对该仓库数据库中的数据库角色映射一次登录。我建议你创建一个新的登录并映射它。如图2所示。

  一旦你创建并配置了数据仓库数据库,请再次运行该向导并选择第二个选项:设置数据采集。你应该在你想采集数据的服务器上进行这个操作。

  在第一个界面上,请选择你在第一步中创建的服务器和数据库,并选择一个目录来存储缓存数据。请对你想采集数据的每台服务器重复此操作。

  在该向导创建数据采集完成,并调度了SQL代理任务之后,你会看到“数据采集器节点下面多了三个节点。


图2 映射登录和用户给MDW角色。

  1、磁盘使用情况。

  2、查询统计。

  3、服务器活动情况。

  你可以双击每个节点打开属性窗口,我强烈推荐花时间检查一下所有选项,这样就能对它们能做什么以及如何配置有一个全面的认识。

  你可以修改诸如保留时间,缓存模式和计划任务之类的配置。因为数据采集器会生成大量数据,而且它的存储表会在几个小时内填充进数亿行数据,所以你可能想要修改任务调度来降低数据采集的频率,这取决于你每台服务器的使用情况。

  在运行该向导之后,数据采集将启动。要累积一些有意义的数据需要一点时间,所以请过一个小时左右再查看报表。

  SQL Server Management Studio 2008现在有三类新报表可以查看数据采集器收集的数据,它们是:服务器活动历史,磁盘利用情况汇总和查询统计历史。

  你可以通过在数据采集节点上右键单击,然后选择管理数据仓库报表来查看这些报表。SQL Server Management Studio 2008会识别哪个数据库用来存储这些数据,所以当你在数据库上右击时,你会有机会选择管理数据仓库概览报表,如下图3所示。


图3 管理数据仓库概览报表。 

  该报表展示给你采集运行在哪台服务器上。你可以点击每个链接来钻取查看每台服务器的更多明细信息。图4是一个服务器活动历史报表的上部分,展示了在服务器活动四个小时以后的情况。

  如你所见,数据采集器报表的顶部展示了一个导航条,你可以滚动它来查看之前捕获的快照,选择你关心时间段的数据进行查看。当你点击下面的统计图时,你可以进入子报表查看更多明细信息。

  请在这些报表中任意一个钻取进去,选择不同的时间段来熟悉报表提供的内容。例如,你可以从查询统计历史报表中钻取到单个查询的明细信息,包括图形化的执行计划。


图4

  数据采集器在采集数据的过程中会对服务器产生2%到5%的性能代价,主要是占用一点CPU资源。存储这些数据的存储需求仅仅是每天300MB,因此你需要为你的每台服务器每周准备大约2GB的数据库存储空间。

  至于数据保留多久,取决于你的需求和存储能力。但是,大部分情况下,你可以采用默认设置,查询统计和服务器活动历史数据采集保留14天,而磁盘用量汇总采集信息保留两年。

  如果你想保留性能数据更长时间,同时不保存快速累积的数亿行数据,你可以写你自己的查询,然后每天或者每周汇总重要数据进行保存。SQL Server联机丛书包含有许多很好的文档,其中记录了数据采集使用的表。这些文档可以使你针对采集到的数据定制查询更容易一些。

0
相关文章