SqlServer作业指定目标服务器
用SSMS生成数据库作业的创建脚本的时候,有一步是sp_add_jobserver操作:
EXEC @ReturnCode = msdb.dbo.sp_add_jobserver @job_id = @jobId, @server_name = N'(local)'
之前没注意过这个细节。昨天看到网上有人提问,为什么前面已经调用存储过程sp_add_job创建作业了,后面还多此一举添加到服务器呢。我自己试了一下,把这块总结下。
一、作业目标为本地服务器
如果只调用sp_add_job创建作业,这时候作业能在SSMS对象资源管理器中的作业列表中显示,但无法执行,执行的时候会报如下错误:
无法启动作业 "XXX" (ID XXXX-XXXX-XXXX-XXXX-XXXXXXX),因为该作业未定义作业服务器。请通过调用 sp_add_jobserver 将该作业与作业服务器关联起来。
查看作业属性页的“目标”选项卡,发现没有选中服务器。这也是sp_add_jobserver存储过程干的事。

一般的作业,都选中了“目标为本地服务器”。如果想指定多台服务器,可以通过下面操作实现。
二、作业目标为多台服务器
首先指定一台服务器为主服务器,然后向这台服务器添加目标服务器,这样,目标服务器就会出现在上图中的列表框中,并可以被选中。当一个作业指定了目标服务器后,作业在主服务器上执行的时候,会向目标服务器发送指令,目标服务器下载作业,然后执行,最后将执行结果告诉主服务器。
在设置数据库之前,需要修改主服务器的注册表中的HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL13.MSSQLSERVER\SQLServerAgent下的AllowDownloadedJobsToMatchProxyName值,默认值是0,改成1,允许从主服务器下载作业。并修改目标服务器上HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL13.MSSQLSERVER\SQLServerAgent下的MsxEncryptChannelOptions值。这个值的意思在MSDN中有解释:Set Encryption Options on Target Servers。默认值是2,加密且需要证书,0是禁用加密。上述路径根据数据库版本和实例不同会不一样。
现有两台服务器22.11.95.165和22.11.95.164,选择165作为主服务器,在“SQL Server代理”上右键-多服务器管理-将其设置为主服务器

弹出主服务器向导,跳过前面的页,进入“目标服务器”设置页面,点击“添加链接”,连接164服务器,如下所示:

然后下一步直到完成。如果出现错误“目标服务器无法与主服务xxxx建立加密连接。请确保目标服务器上的MsxEncryptChannelOptions注册表子项设置正确无误”,则检查上述注册表项修改是否正确,如果还有问题,就把两台服务器的MsxEncryptChannelOptions和AllowDownloadedJobsToMatchProxyName都修改掉。注册表值不正确,还会影响后续拆离操作。

执行成功后,刷新SSMS中的"SQL Server Agent",会发现主服务器后面多了(MSX),“作业”分支下面多了“本地作业”和“多服务器作业”两个目录。目标服务器后面多了(TSX:22.11.95.165)


这时,再选中主服务器上的一个作业,查看属性-目标选项卡,就可以看到可以选择22.11.95.164作为目标服务器了

查看作业列表,刚才选择的作业进入到了“多服务器作业”目录。

然后查看目标服务器状态


显示INSERT操作已经被目标服务器下载下来了。这时查看目标服务器,这个作业已经存在了。

如果要删除这种多服务器方式,只要在刚才目标服务器的管理界面上,点击“发布指令”,指令类型选择“脱离”就可以了。

稍等一会儿,服务器就脱离成功。两台服务器都回到了添加之前的样子。还要记得将刚才的作业修改成目标是本地服务器,否则无法执行。
SqlServer作业指定目标服务器的更多相关文章
- SQLServer作业调用链接服务器失败解决办法
新建一个SQL作业,语句手动执行OK,但是作业计划执行总是报错. 消息已以用户 NT SERVICE\SQLSERVERAGENT 的身份执行. 链接服务器 "172.16.10.23&qu ...
- c#获得目标服务器中所有数据库名、表名、列名的实现代码
/// <summary> /// 获得目标服务器所有数据库名 /// </summary> /// <param name="serverName" ...
- 7、provider: SQL 网络接口, error: 26 - 定位指定的服务器/实例时出错
在建立与服务器的连接时出错.在连接到 SQL Server 2005 时,在默认的设置下 SQL Server 不允许进行远程连接可能会导致此失败.(provider: SQL 网络接口, error ...
- sqlbulkcopy 使用DataTable作为数据源的数据类型问题--来自数据源的String类型的给定值不能转换为指定目标列的类型 uniqueidentifier
今天做批量插入的时候,SQLSERVER总是报错,错误提示“来自数据源的String类型的给定值不能转换为指定目标列的类型 uniqueidentifier”. 首先核对了一下定义的dataTable ...
- sqlserver如何创建链接服务器
遇到下列问题: 线上服务器A,中转服务器B,本地服务器C 数据在A上面,想在B上面操作类似 select * from [A].[database].table这样的SQL,不用去链接服务器,直接把处 ...
- sql作业启停服务器
IF EXISTS(SELECT * FROM msdb.dbo.sysjobs WHERE name='启用pubs数据库') EXEC msdb.dbo.sp_delete_job @job_na ...
- 在有跳板机的情况下,SecureCRT自动连接到目标服务器
为了服务器的安全,运维人员经常会要求我们先登录到跳板机,然后再SSH连接到目标服务器.但是这样是很繁琐的,每次在SecureCRT创建一个连接,都需要输入SSH命令,然后输入密码. 下面的方法可以实现 ...
- 将本地文件上传到指定的服务器(HttpWebRequest方法)
将本地文件上传到指定的服务器(HttpWebRequest方法),通过文件流,带文件名,同文件一同上传的表单文本域及值. ///<summary> /// 将本地文件上传到指定的服务器(H ...
- 解决本地SqlServer无法连接远程服务器数据库,错误10060
本地SqlServer 连不上服务器的数据库环境,错误信息如下图,折腾来折腾去,最终还是解决了 第一步 查看服务器本地端口是否已经打开,查看方法:首先向C:\Windows\System32文件夹添加 ...
随机推荐
- oracle环境变量
1---此部分引自http://hi.baidu.com/jason_xux/item/1f44681d356927fa756a8480 感谢 ORA_NLS33 环境变量ora_nls33定义'l ...
- kali linux学习笔记之系统定制及优化(附:中文输入法设置)
fix update flash plugin on kali rolling author:@kerker 0x00设置软件源 root@kali:~# vim /etc/apt/sources.l ...
- Note: Migratory Compression: Coarse-grained Data Reordering to Improve Compressibility
思路/方法 设计了Migratory Compression. 调整chunk相对位置,将相似chunk排列在一起,通过压缩来减少data store占用的实际存储空间. https://en.wik ...
- Maven核心知识
什么是Maven? Maven是基于项目对象模型(POM), 可以通过一小段描述信息来管理项目的构建和文档的软件项目管理工具 目录结构如下 src main java package test jav ...
- 反射实现增删改查(DAO层)——修改数据
先贴出代码,后续补充自己的思路.配置文件.使用方式: /** * * 修改数据 * */ @Override public void updateObject(Object object, Strin ...
- HDU2047 阿牛的EOF牛肉串
题目:https://blog.csdn.net/qq_40932661?t=1 表面上看去似乎无从下手.但是可以从前面地推出后面的 递推: 假如涂第N个位置,有两种可能,①涂O ②不涂O. 如果涂O ...
- react native ios打包到真机,即生产包
参考文章:http://www.devio.org/2017/02/09/React-Native%E5%8F%91%E5%B8%83APP%E4%B9%8B%E6%89%93%E5%8C%85iOS ...
- [题解](树形dp/记忆化搜索)luogu_P1040_加分二叉树
树形dp/记忆化搜索 首先可以看出树形dp,因为第一个问题并不需要知道子树的样子, 然而第二个输出前序遍历,必须知道每个子树的根节点,需要在树形dp过程中记录,递归输出 那么如何求最大加分树——根据中 ...
- Codeforces Round #129 (Div. 2) A
Description The Little Elephant loves Ukraine very much. Most of all he loves town Rozdol (ukr. &quo ...
- formatter 操作列表的合并
{field:'22',title:'操作',width:250,align:'center',sortable:true,formatter : function(value, row, index ...