SQL Server Utility

在即将发布的SQL Server 2008 R2中,SQL Server Management Studio提供了一个新的管理组件:SQL Server Utility。该组件能够帮助数据库管理员以统一和集中的方式去管理多个数据库实例:Instance以及数据层应用程序:Data-tier Application。(如果你对数据层应用程序没有太多的了解,请参考这里

本文将对该组件所针对的应用场景和相关概念做些解释,然后会对该组件的主要功能接界面做进一步的介绍。

先来看一下SQL Server Utility所要解决的用户需求吧: 随着数据库技术的越来越广泛的使用,很多企业里面都部署了一台以上的数据库服务器,并且在每个数据库服务器上都有着一个或若干个的数据库实例以及更多的数据层应用程序;想象一下,如果一个企业有着10个以上的数据库实例及更多的数据库层应用程序,对这些数据库实例与应用程序的监控与管理将是一个十分耗时而又费力的工作。而SQL Server Utility便是针对这一用户需求而开发的,在SQL Server Utility中,用户可以同时监控多个数据库实例及相关应用程序的使用状态,包括CPU、内存、硬盘等关键资源的使用情况。而且这些数据也会被保留一定时间,企业可以基于这些数据做进一步的分析,从而能够做更好的资源规划。

那么SQL Server Utility是如何做到这一点的呢?我们先来解释一下SQL Server Utility的物理架构和相关概念,然后会进一步解释具体的步骤。下图便是SQL Server Utility的物理架构:


 
在这一架构中,一个或者多个需要被监控的数据库实例将注册到一个统一的控制点上(UCP),而数据库管理员则可以通过其他与此控制点相连的管理终端上对那些需要被监控的数据库实例进行监控和管理。

为此,数据库管理员完成以下几步:

  1. 创建一个UCP。
  2. 将需要被监控的数据库实例或者相关的数据库应用程序注册到该UCP中。

在完成上述步骤后,数据库管理员只需要通过SQL Server Management Studio连接到创建好的UCP,便可以在dashboard上看到相关数据库实例的资源使用状态了。例图如下:

接下来我们进一步介绍如何创建一个UCP,以及如何注册一个数据库实例,并会对Utility的管理做一个简要的介绍。

创建一个UCP

1. 在创建一个UCP之前,需要注意以下若干项:

a. 当前的登录帐号必须有数据库管理员权限;
b. 用来创建UCP的数据库实例从来没有被创建过UCP,并且也没有注册到任何其他的UCP中;
c. SQL Server Agent服务必须被设置为自动启动,缺省安装的情况下,SQL Server Agent 服务的启动方式是手动;
d. SQL Server Agent的启动帐号不能是缺省的build-in的域帐号,譬如:Network Service;

2. 打开SQL Server Management Studio, 在View菜单中选择Utility Explorer;

3. 在Utility Explorer上点击:来启动创建UCP向导;


 
4. 点击下一步来指定在哪个数据库实例上来创建UCP,你可以在本地数据库实例上创建,也可以创建在一个远程的数据库实例上,但是数据库实例的版本号必须高于10.50。


 
5. 当设置完数据库实例以UCP名称后,点击下一步进入账户设置,你既可以用SQL Server Agent的账户,也可以指定一个域账户:该帐户作会被用作SQL Server Agent的代理账户来收集数据;


 
6. 点击下一步,进入预验证阶段:


 
7. 点击下一步,查看汇总信息,一切确认无误,便可以直接进入下一步创建UCP:


 
8. 点击完成,结束整个创建过程。

创建结束后,当前的数据库实例会缺省的被注册到刚刚创建的UCP中,由于数据在缺省情况下是每十五分钟收集一次,刚刚创建完的UCP没有任何数据,其dashboard看起来会是如下的样子,灰色的饼图表是数据尚未收集成功。

在Utility Explorer上点击Managed Instances, 也可以看到当前的数据库实例已被注册到当前的UCP中:

注册一个数据库实例

1. 在Utility Explorer中,右键点击Managed Instances节点,选择:Enroll Instance菜单来启动数据库实例注册向导;


 
2. 点击:下一步进入数据库实例选择界面,点击Connect.. 来连接到一个已经存在的数据库实例上;


 
3. 点击下一步,进入账户设置界面,和创建UCP的过程一样,在这一步需要指定一个有效的域帐户作为SQL Server Agent的代理账户用来收集数据;

4. 点击下一步,进入预验证; 和创建UCP的过程一样,向导会对注册数据库实例的一些前提条件进行检查;

5. 一切正常的话,点击下一步查看汇总信息,确认无误,点击下一步,进行注册:


 
6. 点击完成,结束整个注册过程;

Utility管理

在Utility Explorer中点击Utility Administration可以进入Utility 管理界面,在这里你可以设置数据收集策略;安全策略及Utility数据仓库的一些基础配置。

例如: 在数据收集策略中,你可以设置:当该数据库实例对CPU的使用超过70%时,可以认为该数据库实例已经超负荷使用(overutilized)了CPU资源; 而当CPU使用低于5%,认为该数据库实例没有充分利用CPU资源(underutilized);同样的,你也可以对数据文件,日志文件等进行类似设置。

在安全设置中,你可以设置那些域帐户具有对Utility收集的数据读的权限:

而在数据仓库设置中,你可以设置Utility将对收集的数据保存多久:

如果你想忙上尝试一下使用SQL Server 2008 R2的这一新功能,可以点击此处下载SQL Server 2008 R2的CTP版。如果你想进一步了解SQL Server 2008 R2的一些新功能,请继续关注SQL CRD的博客。

软件测试主管:李俊