SQL Server代理是所有实时数据库的核心。代理有很多不明显的用法,因此系统的知识,对于开发人员还是DBA都是有用的。这系列文章会通俗介绍它的很多用法。


在这一系列的上一篇,我们查看了维护计划,一个维护计划可能会创建多个作业,多个计划。你还简单地看了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的兼容性图表关于主服务器和目标服务器之间的兼 容性。在某些情况下它甚至取决于下层服务器服务包级别。在在线帮助里可以了解更多:https://msdn.microsoft.com/zh-cn/library/ms191305.aspx

安装程序和安全注意事项

一个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代理节点,选择多服务器管理->将其设置为主服务器...(如插图1所示)

启动SQL Server 代理服务 sql server代理服务器_Server


插图1 启动主服务器向导

这将启动主服务器向导,你会看到欢迎画面,如插图2所示。单击“下一步”,呈现主服务器操作员界面,如图插图3所示。输入相应的联系信息,然后单击“下一步”。

启动SQL Server 代理服务 sql server代理服务器_Server_02


插图2 主服务器向导欢迎页面

启动SQL Server 代理服务 sql server代理服务器_启动SQL Server 代理服务_03


插图3 主服务器操作员

单击“下一步”,会出现目标服务器”对话框(插图4)。你可能需要在这个对话框中注册你的连接,所以点击添加连接……并添加适当的连接。对于这一步的目的,你会使用本地实例Target1和Target1。你可以随时返回,添加或删除服务器或实例。

再 次单击“下一步”,和你选择的目标服务器的连接进行验证,如插图5所示。单击“关闭”,你会被要求到指定的登录凭据。如果可能的话,接受默认设置,使 用服务帐户与Windows身份验证的连接,如插图6所示。如果你已经创建服务帐户的登录,你不需要向导为你创建登录。

启动SQL Server 代理服务 sql server代理服务器_TSX_04


插图4 设置目标服务器

启动SQL Server 代理服务 sql server代理服务器_启动SQL Server 代理服务_05


插图5 设置目标服务器验证

启动SQL Server 代理服务 sql server代理服务器_服务器_06


插图6 主服务器登录凭据

点 击下一步,完成,你应该看到类似插图7的向导完成后,你的默认实例为主服务器,另外两个实例作为目标服务器。你可能会得到与登录创建错误,如图插图7所示。如果发生这种情况,只要登记进程成功你就可以忽略错误。错误可能仅仅意味着 服务帐户已配置。

启动SQL Server 代理服务 sql server代理服务器_启动SQL Server 代理服务_07


插图7 完成向导

如果你现在刷新你的SQL Server代理节点,你会注意到,它显示每个节点的MSX/TSX的角色,如插图8所示。

启动SQL Server 代理服务 sql server代理服务器_Server_08


插图8 配置好MSX/TSX后的SSMS

创建一个MSX/TSX作业

现在你已经配置完环境,是时候来创建一个主作业,将运行在所有的服务器上,并报告状态给你的主服务器。主服务器上创建一个新的作业,只有简单步骤(T- SQL类型select * from sys.all_objects)。点击目标选项卡(插图9所示),并选择两个目标服务器。单击“确定”,作业在主服务器上创建完成。

启动SQL Server 代理服务 sql server代理服务器_Server_09


插图9 让作业运行于目标服务器

等待至少一分钟,因为作业复制到目标服务器有轮询间隔的,然后刷新你的SQL Server代理作业节点,你会看到类似插图10。注意,在主服务器上,你现在有个多服务器作业文件夹;目标服务器上会正常显示作业。

启动SQL Server 代理服务 sql server代理服务器_服务器_10


插图10 主服务器上的作业复制到目标服务器

现在,在你的TSX服务器运行作业。等待一分钟左右,然后回到你的主服务器,右击MSXTest作业,选择查看历史记录。现在你会注意到从每个TSX服务器的历史反馈回来(注意在日志文件查看器中的Server列),如插图11所示。

启动SQL Server 代理服务 sql server代理服务器_TSX_11


插图11 主服务器上查看作业历史记录

事件转发

你 也可以配置SQL Server错误事件转发到中心服务器,比如你的MSX服务器。这将产生额外的网络流量,但你可以在中心服务器上查看所有TSX服务器相关的事件。右键单 击SQL Server代理节点,选择属性,然后在高级选项卡。你可以选择“将事件转发到其他服务器”,输入服务器名称,然后配置要转发的事件。例如,插图12显示了一个配置,只将未处理的系统事件(严重性为17或更高)转发到MSX服务器。

启动SQL Server 代理服务 sql server代理服务器_服务器_12


插图12 配置事件转发

小结

这一篇涉及SQL Server代理多服务器管理功能,MSX/TSX。你可以使用一个MSX/TSX环境集中管理作业,以及集中的事件报告。使用此功能,减少你必须连接到监视系统状态的服务器的数量。
谢谢你抽出时间来阅读SQL Server代理系列文章!