Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 在SQLServer代理的上下文中,什么是作业服务器?_Sql Server_Sql Server Agent - Fatal编程技术网

Sql server 在SQLServer代理的上下文中,什么是作业服务器?

Sql server 在SQLServer代理的上下文中,什么是作业服务器?,sql-server,sql-server-agent,Sql Server,Sql Server Agent,编写SQL代理作业脚本时,脚本中会出现sp_add_jobserver调用。我查看了有关此存储过程的文档,但仍然无法理解什么是作业服务器。据我所知,创建作业时,总是在特定服务器上创建作业。稍后,您可以在该服务器上运行作业。那么,为什么我们需要使用此存储过程将作业合并到服务器 要在此处解释更多详细信息: 若要将作业添加到其他服务器,必须将服务器设为主服务器,并将目标服务器添加到其中。执行此操作后,SSMS中的SQL server代理将变为: DelPDFHis作业是另一台服务器上的目标: 目标

编写SQL代理作业脚本时,脚本中会出现sp_add_jobserver调用。我查看了有关此存储过程的文档,但仍然无法理解什么是作业服务器。据我所知,创建作业时,总是在特定服务器上创建作业。稍后,您可以在该服务器上运行作业。那么,为什么我们需要使用此存储过程将作业合并到服务器

要在此处解释更多详细信息: 若要将作业添加到其他服务器,必须将服务器设为主服务器,并将目标服务器添加到其中。执行此操作后,SSMS中的SQL server代理将变为:

DelPDFHis作业是另一台服务器上的目标:

目标服务器会将其下载到本地。


在服务器a中执行作业时,它也将在服务器b中执行。

“当您创建作业时,您总是在特定服务器上创建它。以后您可以在该服务器上运行该作业”,事实上,它不是。当您在没有sp_add_jobserver的情况下创建作业时,该作业将位于目标服务器的作业列表中,但无法成功执行。将出现一个错误:“无法启动作业“XXX”(ID xxxx-XXX-xxxx-xxxx-xxxxx),因为它没有定义任何作业服务器。通过调用sp_add_jobserver将作业与作业服务器关联。”@wangguanguo因此,如果我在服务器a上部署作业并使用sp_add_jobserver将作业与服务器a组合,我可以在服务器a上成功运行作业。但是,如果我将作业与另一个服务器b合并,会怎么样?在这种情况下,作业位于a上(b上没有作业定义),我将其与服务器a上的b结合使用。如果在这种情况下启动作业,会发生什么情况?作业不能同时在a和b上。如果将作业服务器a作业添加到b,则会出现错误:此作业当前以远程服务器为目标,因此不能同时以本地服务器为目标。必须先删除“a”中的作业。执行此操作后,作业位于SSMS中的[SQL Server Agnet]-[Jobs]-[Multi-Server Jobs]列表中。您可以执行它,它将影响服务器b。