在2.1节中,介绍了服务器组,虽然服务器组是一个相对较老的概念,在SQL Server 2000和2005等版本中已经存在,但是自SQL Server 2008起服务器组的功能得到了进一步提升,形成了本地服务器组的概念。同时,为进一步加强对多服务器管理,SQL Server 2012版还增加了中央管理服务器。
本地服务器组和中央管理服务器在多服务器场合,为实现多服务器的统一、整合管理提供了很大帮助。例如,需要对多服务器执行同一条T-SQL语句,早先只能在每台服务器上单独进行操作,并且需要增加额外的工作,才能汇总执行产生的结果。在本地服务器组和中央管理服务器管理中,可以对服务器组执行上述操作,则对应服务器组下的服务器都会执行相同的操作,并能自动汇总执行的结果。
另外,SQL Server 2019提供的基于策略的管理,在本地服务器组和中央管理服务器的支持下,可以同时对服务器组下属的服务器执行策略评估。
2.4.1 使用本地服务器组
在2.1节中,已在本地服务器组中创建了一个服务器组。
在本节中,将利用上述服务器组及注册的服务器,以执行T-SQL查询语句为例,演示本地服务器组的使用方法。
2.4.1.1 查看服务器组下的服务器信息
如图

在"西南服务器组"下,已经注册有服务器"CHINAMI-99K9QNQ"和"CHINAMI-99K9QNQ\KJEJFAIKJFEKKDJF"。要查看这两台服务器的详细情况,可以右击"西南服务器组",在右键菜单中选择"对象资源管理器"命令,可以在下面的"对象资源管理器"窗口中看到这台服务器的情况。

从中可知,CHINAMI-99K9QNQ\KJEJFAIKJFEKKDJF的SQL Server版本号为16.0,CHINAMI-99K9QNQ的SQL Server版本号为15.0。
2.4.1.2 在服务器组中执行查询语句
在服务器组中执行查询语句,可以使查询语句在组下服务器中都得到执行,操作过程如下:
- 在"已注册的服务器"窗口中右击服务器组,在右键菜单中选择"新建查询"命令。
- 在"查询编辑器"中输入如下T-SQL语句,单击工具栏中的【执行】按钮,结果如下:

可以在窗口的状态栏中,看到查询是针对"西南服务器组"。在结果栏中可以看到,有一新增的列名为"服务器名称"的数据,分别是"CHINAMI-99K9QNQ"和"CHINAMI-99K9QNQ\KJEJFAIKJFEKKDJF",这两台服务器都执行了上述语句。
来自多台服务器执行查询的结果,可以合并为单一结果集的方式来显示,也可以下面不同服务器分类的方式来显示:
- 合并结果。将各服务器查询结果合并显示为一个数据集。
- 将登陆名添加到结果。在结果集中添加一个新列,此列显示对应服务器的登录名。
- 将服务器名称添加到结果。在结果集中添加一个新列,此列显示服务器名称。(上述结果)
上述三种方式,可以在SSMS中进行设置,操作如下:
- 在SSMS中选择菜单"工具"➡"选项";
- 在"选项"对话框中,展开左侧"查询结果"➡"SQL Server"➡"多服务器结果",如图

在右侧的各选项中,可以设置需要的选项值。
- 当设置"合并结果"项为False时,执行结果显示如图

2.4.2 创建中央管理服务器
中央管理服务器相比本地服务器组,在安全性方面有了进一步提升。中央管理服务器的配置结构如图,处于核心的时中央管理服务器,通过中央管理服务器可以对下属的服务器进行管理。

创建中央管理服务器需要遵循以下要求:
- 作为中央管理服务器的SQL Server服务器,必须是2008以上的版本;
- 被管理服务器上安装的SQL Server不做要求;
- 将被管理服务器注册到中央管理服务器下时,必须采用Windows验证。因此,各被管理服务器的Windows操作系统中必须添加与中央管理服务器相同账户的管理员用户。例如:中央管理服务器上当前使用的Windows用户为administrator,则其他被管理服务器也必须使用administrator来连接,否则可能出现权限问题报错。
创建中央管理服务器及被管理服务器的操作过程如下:
- 创建中央管理服务器。在"已注册的服务器"窗口中右击"中央管理服务器",在右键菜单中选择"注册中央管理服务器"命令;在"新建服务器注册"对话框中,输入中央管理服务器的注册信息。上述注册操作与服务器注册的操作过程相同,本例中的中央管理服务器的名称为CHINAMI-99K9QNQ,名称可以根据需要命名。

- 创建被管理服务器。在中央管理服务器下可以创建被管理服务器组,建组的方法与服务器组创建方法相同。建完组后,可以在组下添加被管理的服务器注册,创建被管理服务器的注册方式与服务器注册方式相同。但是,被管理的服务器必须以Windows身份验证的方式注册

在中央管理服务器环境中,执行任务的操作与本地服务器组类似。
2.4.3 本地服务器组与中央管理服务器的比较
从以上关于本地服务器组与中央管理服务器的操作和功能可以看出,两者具有很大的相似性。
首先,功能上,本地服务器组和中央管理服务器都可以对下属多台服务器执行相同的操作,如新建查询,执行策略评估等;
其次,两者都是通过层次化结构来实现对多服务器的有序管理;
第三,上述操作都是基于SSMS工具来完成的。
虽然本地服务器组与中央管理服务器存在不少共同点,但两者还是有不少区别。
首先,在中央管理服务器中,具有作为管理核心的"中央管理服务器",对其他服务器的管理可以通过中央管理服务器来实现。因此,要对被管理服务器进行管理时,必须先连接中央管理服务器,这在一定程度上提高了系统的安全性。
其次,本地服务器组下,被管理服务器可以采用"Windows身份验证"或"SQL Server验证"进行注册。中央管理服务器下,各服务器需要采用"Windows身份验证"的方式进行验证注册。这样的设置方式,可以充分利用Windows用户管理模块对用户安全性管理的强化作用,如对密码的强制修改等,也在一定程度上提高了系统安全性。
第三,在本地服务器组中,服务器的注册信息保存在RegSrvr.xml文件中。该文件记录了各服务器的名称、登录名以及经过加密后的密码,该文件可以在操作系统中找到并以文本形式打开。由于该文件暴露了太多注册信息,有可能称为被利用的安全漏洞。而在中央管理服务器中,被管理服务器的注册信息保存在中央管理服务器中,相比而言,中央管理服务器有更强的安全性。