本篇文章是SQL Server代理系列的第十二篇,详细内容请参考原文
在这一系列的上一篇,我们查看了维护计划,一个维护计划可能会创建多个作业,多个计划。你还简单地看了SSIS子系统,并查看了维护计划作业步骤的属性。在最后一篇,你将学习MSX/TSX,SQL Server代理多服务器管理。MSX/TSX允许你在多个系统上运行作业,然后将作业结果和历史记录保存到一个SQL Server实例上。
使用MSX/TSX多服务器管理——概念
多服务器管理功能,也被称为MSX/TSX特征(即主/目标服务器)已经提供了好几个版本的SQL Server。MSX/TSX提供在主服务器上定义SQL Server代理作业,然后作业运行在一个或多个目标服务器。这些目标服务器还可以发送事件到主服务器,这样你就可以在单一的视图中查看多服务器的SQL Server代理事件。
为了正确地理解MSX/TSX环境,你需要先了解一些术语和概念。包括:
->主服务器(MSX)
主服务器(MSX)是主机服务器,作业、作业步骤、计划调度都是在其上面创建。此外,作业的结果将从目标服务器的传送到主服务器。你可以在主服务器上查看所有作业的结果。
->目标服务器(TSX)
目标服务器(TSX)由一个或多个服务器配置为接受来自主服务器的作业,并报告作业跑回到主服务器(MSX)的结果。目标服务器会偶尔连接到MSX服务器下载作业,和更新作业。
->轮询间隔
在轮询间隔时目标服务器才连接到主服务器下载/更新。默认情况下,轮询间隔是一分钟。你可以改变这个间隔,基于网络负载或你需要更多或更少同步频率。
注意:在SQL Server 2008中,介绍了一种新的基于策略的管理。它的特征与MSX/TSX完全无关。
SQL Server版本之间兼容性是MSX/TSX配置中的一个关键问题。只要你的服务器都是SQL Server 2008,那么你不需要关心这个。然而,如果你像大多数人一样,有一个混合的环境,你应该仔细查看MSDN的兼容性图表关于主服务器和目标服务器之间的兼容性。在某些情况下它甚至取决于下层服务器服务包级别。
安装程序和安全注意事项
一个MSX/TSX的环境下取得成功,一些安全方面的考虑必须解决。对于SQL Server代理服务帐户安全的考虑,并有加密考虑MSX和TSX服务器之间的通信。
服务帐户选择
经常使用的默认服务帐户,如网络服务(Network Service),可能不适合你的MSX/TSX环境。因为你需要SQL Server代理服务与其他服务器和/或实例进行通信,你需要一个可以在网络上通信正常的帐户。本地服务帐户不能使用,因为你连接到远程服务器会有困难。域用户帐户,或机器帐户,是更好的选择。在所有的情况下,它不要求服务帐户是服务器上的Windows管理员被用于在MSX/TSX环境。
加密选项
如果你想禁用服务器之间的通信加密,你可以编辑SQL Server实例上的注册表。这是不推荐的,但是如果你必须这样做,请参考文档,并仔细考虑你在做什么。只有在一个很古老的MSX/TSX服务器环境才会考虑,如SQL Server 2000系统。
请注意,如果你想在家用系统配置这个,或系统没有安全证书,你将需要设置注册表禁用加密否则MSX/TSX设置肯定会失败。
设置MSX/TSX
对于这一步的目的,演示环境是同一台机器上有三个数据库实例。提前在SSMS中将这三个实例注册到资源管理器。默认实例将设置为主服务器,另外两个实例将这里命名为Target1和Target2。
建立MSX/TSX的最简单的方法是使用主服务器向导。右键单击您的SQL Server代理节点,选择多服务器管理->将其设置为主服务器...(如图12.1所示)
图12.1 启动主服务器向导
这将启动主服务器向导,你会看到欢迎画面,如图12.2所示。单击“下一步”,呈现主服务器操作员界面,如图12.3所示。输入相应的联系信息,然后单击“下一步”。
图12.2 主服务器向导欢迎页面
图12.3 主服务器操作员
单击“下一步”,会出现目标服务器”对话框(图12.4)。你可能需要在这个对话框中注册你的连接,所以点击添加连接……并添加适当的连接。对于这一步的目的,你会使用本地实例Target1和Target1。你可以随时返回,添加或删除服务器或实例。
再次单击“下一步”,和你选择的目标服务器的连接进行验证,如图12.5所示。单击“关闭”,你会被要求到指定的登录凭据。如果可能的话,接受默认设置,使用服务帐户与Windows身份验证的连接,如图12.6所示。如果你已经创建服务帐户的登录,你不需要向导为你创建登录。
图12.4 设置目标服务器
图12.5 设置目标服务器验证
图12.6 主服务器登录凭据
点击下一步,完成,你应该看到类似图12.7的向导完成后,你的默认实例为主服务器,另外两个实例作为目标服务器。你可能会得到与登录创建错误,如图12.7所示(由于在本地08和12配置有问题,图片12.8-12.11引用原文图片)。如果发生这种情况,只要登记进程成功你就可以忽略错误。错误可能仅仅意味着服务帐户已配置。
图12.7 完成向导
如果你现在刷新你的SQL Server代理节点,你会注意到,它显示每个节点的MSX/TSX的角色,如图12.8所示。
图12.8 配置好MSX/TSX后的SSMS
创建一个MSX/TSX作业
现在你已经配置完环境,是时候来创建一个主作业,将运行在所有的服务器上,并报告状态给你的主服务器。主服务器上创建一个新的作业,只有简单步骤(T-SQL类型select * from sys.all_objects)。点击目标选项卡(如图12.9所示),并选择两个目标服务器。单击“确定”,作业在主服务器上创建完成。
图12.9 让作业运行于目标服务器
等待至少一分钟,因为作业复制到目标服务器有轮询间隔的,然后刷新你的SQL Server代理作业节点,你会看到类似图12.10。注意,在主服务器上,你现在有个多服务器作业文件夹;目标服务器上会正常显示作业。
图12.10 主服务器上的作业复制到目标服务器
现在,在你的TSX服务器运行作业。等待一分钟左右,然后回到你的主服务器,右击MSXTest作业,选择查看历史记录。现在你会注意到从每个TSX服务器的历史反馈回来(注意在日志文件查看器中的Server列),如图12.11所示。
图12.11 主服务器上查看作业历史记录
事件转发
你也可以配置SQL Server错误事件转发到中心服务器,比如你的MSX服务器。这将产生额外的网络流量,但你可以在中心服务器上查看所有TSX服务器相关的事件。右键单击SQL Server代理节点,选择属性,然后在高级选项卡。你可以选择“将事件转发到其他服务器”,输入服务器名称,然后配置要转发的事件。例如,图12.12显示了一个配置,只将未处理的系统事件(严重性为17或更高)转发到MSX服务器。
图12.12 配置事件转发
下一篇
这一篇涉及SQL Server代理多服务器管理功能,MSX/TSX。你可以使用一个MSX/TSX环境集中管理作业,以及集中的事件报告。使用此功能,减少你必须连接到监视系统状态的服务器的数量。
谢谢你抽出时间来阅读SQL Server代理系列文章!