范围的多个实例的自动化管理 SQL Server 称为 多服务器管理。 使用多服务器管理可以执行下列操作:

管理两台或多台服务器。

在企业服务器之间安排数据仓库的信息流。

若要利用多服务器管理,您必须至少有一台主服务器且至少有一台目标服务器。 主服务器将作业分发到目标服务器并从它那里接收事件。 主服务器还存储在目标服务器上运行的作业的作业定义的中央副本。 目标服务器定期连接到主服务器来更新它们的作业计划。 如果主服务器上存在新作业,目标服务器将下载该作业。 目标服务器在完成作业后,会重新连接到主服务器并报告作业状态。 请注意,在执行任何数据库时,作业定义必须是同一个相关活动。

以下图例显示了主服务器与目标服务器之间的关系。

将该备份作业一次性写入主服务器,然后将部门服务器登记为目标服务器。 从它们登记时刻起,所有部门服务器将运行相同的备份作业,而您只需定义一次作业。

开始测试吧!!本测试为单服务器上的双实例.

MSSQL 2014 :HZC\MSSQLSERVER (主服务器实例)

MSSQL 2016 :HZC\DOG (目标服务器实例)

首先改注册表,取消主服务器和目标服务器之间的加密。打开注册表,搜索更改两个选项。

MsxEncryptChannelOptions = 0

AllowDownloadedJobsToMatchProxyName = 0

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\SQLServerAgent\MsxEncryptChannelOptions

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\SQLServerAgent\AllowDownloadedJobsToMatchProxyName

说明如下:


说明
0
在该目标服务器和主服务器之间禁用加密。 请仅在目标服务器和主服务器之间的通道已使用其他方法进行了保护时才选择此选项。
1
仅在该目标服务器和主服务器之间启用加密,但不需要证书验证。
2
在该目标服务器和主服务器之间启用完全 SSL 加密和证书验证。 这是默认设置。 除非出于特定的原因要选择其他值,否则建议不要对其进行更改。

代理启动账户添加到实例账户中,并授予服务器角色 sysadmin

接下来直接开始吧!右键主服务器代理,将当前设置为主服务器

到这一步,在已注册服务器中将目标实例添加上,下一步步完成即可!

(打开已注册服务器:菜单栏——》视图——》已注册服务器——》将服务器添加)

或者一个命令即可配置完成!将当前服务器添加到主服务器的可用服务器列表中(目标实例执行)

[sql] view plain copy
 
--将当前服务器添加到主服务器的可用服务器列表中(目标实例执行)  
EXEC msdb.dbo.sp_msx_enlist   
@msx_server_name = N'HZC', --主服务器  
@location = N'location' --要添加的目标服务器的位置  
GO

好了,代理的名字变了,配置完成!可以看到,主服务器实例代理下区分了“本地作业” 和 “多服务器作业”。

现在简单创建一个作业,步骤执行内容为 :select getdate() 。最后一个选项 “目标”,这是区分本地还是多服务器的作业,如下勾选目标服务器:

很快,发现同步了。

现在打开目标管理器进行同步管理。右键主服务器代理——》多服务器管理——》管理目标服务器

这时最近一次同步的时间。

作业 “test2” 是主服务器刚创建的,创建时或者修改时,记录会记录在 “下载指令” 中。目标服务器会逐条执行这些记录,若“下载日期” 不为空,则表示已经同步过来了。

[sql] view plain copy
 
--下载指令(主实例执行)  
EXEC msdb.dbo.sp_help_downloadlist  
SELECT * FROM msdb.dbo.sysdownloadlist  
GO

若指令出现了错误,也可以将错误的指令删除。

[sql] view plain copy
 
--  Delete from msdb.dbo.sysdownloadlist where instance_id < 5 --可以直接删除

若需要某条指令重新同步或新增同步,可以将指令插入到表 sysdownloadlist 中。
[sql] view plain copy
 
--向系统表 sysdownloadlist 中插入操作(行),以供目标服务器下载和执行(主实例执行)  
--https://msdn.microsoft.com/zh-cn/library/ms173737.aspx  
DECLARE @jobid CHAR(36)  
SELECT @jobid=job_id FROM msdb.dbo.sysjobs WHERE name = 'test2'   
EXEC msdb.dbo.sp_post_msx_operation   
@operation = 'INSERT',   
@object_type =  'JOB',   
@job_id = @jobid,  
@specific_target_server = 'HZC\DOG'  
GO

目标服务器的作业会记录每次执行信息,而主服务器中的 【作业活动监视器】可以看到所有作业最近的状态。
[sql] view plain copy
 
--作业活动监视器(目标服务器作业失败了会反映到这里(主实例执行)  
EXEC msdb.dbo.sp_help_job  
SELECT * FROM msdb.dbo.sysjobservers  
GO

现在将本地作业改为多服务器作业。

[sql] view plain copy
 
--将本地作业更改为多服务器作业(主实例执行)  
EXEC msdb.dbo.sp_delete_jobserver  
@job_name=N'test',  
@server_name = N'HZC'  
GO  
EXEC msdb.dbo.sp_add_jobserver  
@job_name = N'test',  
@server_name =  N'HZC\DOG'  
GO

存储过程 sp_delete_jobserver 和 sp_add_jobserver 只是对服务器的选项选择,也可以两个都不选(只能sp_delete_jobserver执行),选择一个时必须先删除掉另一个。

现在说说管理界面吧!

看到四个选择:脱离,设置轮询间隔,同步时钟,开始作业。语义明显,不多说明,后3个设置脚本如下:

[sql] view plain copy
 
--设置轮询间隔(主实例执行)  
EXEC msdb.dbo.sp_post_msx_operation   
@operation = 'SET-POLL',  
@object_type = 'SERVER',  
@specific_target_server = 'HZC\DOG',  
@value = 60--以秒为单位的轮询间隔(10 到 28800)  
GO  
  
--设置时钟同步(主实例执行)  
EXEC msdb.dbo.sp_post_msx_operation  
@operation = 'SYNC-TIME',  
@object_type = 'SERVER',  
@specific_target_server = 'HZC\DOG'  
GO  
  
--设置开始同步(主实例执行)  
EXEC msdb.dbo.sp_post_msx_operation  
@operation = 'RE-ENLIST',  
@object_type = 'SERVER',  
@specific_target_server = 'HZC\DOG'  
GO

脱离 最后再说。作业可能较久没同步或者变化较多,可以批量重新同步。存储过程 sp_resync_targetserver 先是同步一个删除命令,删除所有作业,再将所有目标服务器作业同步过来。
[sql] view plain copy
 
--重新同步指定目标服务器中的所有多服务器作业(主实例执行)  
EXEC msdb.dbo.sp_resync_targetserver N'ALL'  
GO

同步指令下达之后,就等着时间轮询到时执行同步。轮询时间可以设置,也可强制轮询。
(注:该存储过程似乎没用,最好在操作界面点击 “强制轮询”)

[sql] view plain copy
 
--强制轮询,手动脚本似乎无效!(主实例执行)  
DECLARE @localtime VARCHAR(30) = CONVERT(VARCHAR(30),GETDATE(),120)  
EXEC msdb.dbo.sp_sqlagent_probe_msx  
@server_name = N'HZC\DOG',  
@local_time = @localtime,  
@poll_interval = 60,  
@time_zone_adjustment = 480  
GO

对于脱离,几个方法:

[sql] view plain copy
 
--从多服务器操作中删除当前服务器,并删除目标服务器中的作业(目标实例执行,为最后一个作业则会删除 MSX&TSX)  
EXEC msdb.dbo.sp_msx_defect @forced_defection = 0  
GO   
  
--从多服务器操作中删除当前服务器,并删除目标服务器中的作业(主/目标实例执行,为最后一个作业则会删除 MSX&TSX)  
EXEC msdb.dbo.sp_post_msx_operation  
@operation = 'DEFECT',  
@object_type = 'SERVER',  
@specific_target_server = 'HZC\DOG'  
GO   
  
--删除作业目标服务器,并删除目标服务器中的作业(主实例执行,为最后一个作业则会删除 MSX&TSX)  
EXEC msdb.dbo.sp_delete_targetserver  
 @server_name = 'HZC\DOG',  
 @clear_downloadlist = 1 ,--是否清除下载列表  
 @post_defection = 1 --是否向目标服务器发布脱离指令  
 GO   
--------------------- 
作者:scGY07leY6 
来源:CSDN 
原文:https://blog.csdn.net/scgy07ley6/article/details/57436844 
版权声明:本文为博主原创文章,转载请附上博文链接!

SqlServer 多服务器管理(MSSQL分布式作业管理)相关推荐

  1. 对sqlserver服务器状态进行管理,Server2008服务器管理.ppt

    Server2008服务器管理 第3章Server2008服务器管理 本章主要内容 3.2 SQL Server 2008服务器管理 3.2 SQL Server 2008服务器管理 3.2 SQL ...

  2. sqlserver数据库的服务器 改名字后 数据库登录不上 解决方案 sqlserver 更改 服务器名的问题

    计算机改名后,SQL数据库不能登录问题的解决方法. 1.用sa登录 数据库为master中新建查询 select from sys.sysservers 进行查询可发现数据库中还保留着之前的计算机名 ...

  3. 【ZZ】使用github管理Eclipse分布式项目开发

    2019独角兽企业重金招聘Python工程师标准>>> 老关我在前面的博文(github管理iOS分布式项目开发)中介绍了github管理iOS分布式开发,今天老关将向大家介绍使用g ...

  4. 使用github管理Eclipse分布式项目开发

    使用github管理Eclipse分布式项目开发 老关我在前面的博文(github管理iOS分布式项目开发)中介绍了github管理iOS分布式开发,今天老关将向大家介绍使用github管 理Ecli ...

  5. JAVA线程池管理及分布式HADOOP调度框架搭建

    平时的开发中线程是个少不了的东西,比如tomcat里的servlet就是线程,没有线程我们如何提供多用户访问呢?不过很多刚开始接触线程的开发攻城师却在这个上面吃了不少苦头.怎么做一套简便的线程开发模式 ...

  6. IT运维:服务器管理

    服务器是连接到其他设备以提供服务的设备.其他设备称为客户端,此设置称为客户端-服务器模型. 服务器提供的服务包括存储数据.托管网站.运行应用程序.中继信息和执行计算.任何向发出请求的客户端提供服务的设 ...

  7. asp毕业设计——基于asp+sqlserver的选题管理系统设计与实现(毕业论文+程序源码)——选题管理系统

    基于asp+sqlserver的选题管理系统设计与实现(毕业论文+程序源码) 大家好,今天给大家介绍基于asp+sqlserver的选题管理系统设计与实现,文章末尾附有本毕业设计的论文和源码下载地址哦 ...

  8. 【java毕业设计】基于javaEE+原生Servlet+SqlServer的医院管理住院系统设计与实现(毕业论文+程序源码)——医院管理住院系统

    基于javaEE+原生Servlet+SqlServer的医院管理住院系统设计与实现(毕业论文+程序源码) 大家好,今天给大家介绍基于javaEE+原生Servlet+SqlServer的医院管理住院 ...

  9. C#毕业设计——基于C#+asp.net+sqlserver的教务管理平台设计与实现(毕业论文+程序源码)——教务管理平台

    基于C#+asp.net+sqlserver的教务管理平台设计与实现(毕业论文+程序源码) 大家好,今天给大家介绍基于C#+asp.net+sqlserver的教务管理平台设计与实现,文章末尾附有本毕 ...

  10. asp毕业设计——基于asp+sqlserver的学籍管理系统设计与实现(毕业论文+程序源码)——学籍管理系统

    基于asp+sqlserver的学籍管理系统设计与实现(毕业论文+程序源码) 大家好,今天给大家介绍基于asp+sqlserver的学籍管理系统设计与实现,文章末尾附有本毕业设计的论文和源码下载地址哦 ...

最新文章

  1. geany怎么创建文件夹_教程详情|Geany怎么使用,Geany安装使用教程_234游戏网
  2. 禁用编译优化_Tomcat8史上最全优化实践
  3. 9-10 rpm程序包管理和YUM仓库
  4. BCGSoft Demo示例展示:菜单示例集合(2/2)
  5. 50. Pow(x, n)
  6. 毕业了,在Python中使用 OpenCV 和K-Means 聚类对毕业照进行图像分割
  7. pcb二次钻孔_线路板中的二次孔是什么?线路板钻孔有哪些常见问题?
  8. 阿里动物园新成员来了,10本书带你读懂这个新物种
  9. MTK 驱动开发(5)---bootloader
  10. 提高软件质量的10点
  11. 计算机专业黑板报迎新,迎新学期黑板报图
  12. 手把手教你云服务器如何搭建typecho博客网站(包括配置免费SSL证书)
  13. python 阿里云短信接口_阿里云短信接口怎么使用
  14. Php调用工行支付接口时的问题解决
  15. 国稻种芯绿色沃土计划 农业大健康-万祥军:对话化肥惹的祸?
  16. mt4虚拟服务器账户无效,外汇登录显示无效账户怎么办?
  17. 011235813用java写出来_C 编程练习题大全(带答案)
  18. PDF添加页码的工具有什么 PDF添加页码的小窍门
  19. RGB与HSV等的转换
  20. 小学计算机教研组总结,小学信息技术教研组工作总结范文

热门文章

  1. NYOJ 144 小柯的烦恼
  2. linux live cd哪个好,最佳的 Linux LiveCD
  3. vue 路由跳转 外部链接
  4. 03.NopCommerce功能与特点介绍
  5. 布同:3D网游开发整体流程简述
  6. 记一次配置路由器无线桥接的过程——让古董路由器发挥余热
  7. case when 语句用法
  8. 稀土配合物Ln(DBM)3(Cz-PBM)|Tb(DBM)3(Cz-PBM)|Gd(DBM)3(Cz-PBM)|Ir(L)2(DBM-Ox)Ir(L)2(DBM-Cz)qiyue
  9. 《如何阅读一本书》笔记
  10. 论文代码复现|并行无人机的调度优化问题PDSTSP