有没有办法备份代理作业?

ige*_*elr 7 sql-server sql-server-agent disaster-recovery

我找不到有关是否可以备份 SQL Server 中的代理作业的文档。如果没有,我如何备份它们以便在将来发生实例故障时恢复?

Bra*_*adC 10

SQL 代理作业存储在系统msdb数据库中,因此备份该数据库将满足您的需求。

在发生灾难时,您可以还原整个msdb数据库,或者在必要时从 msdb 的还原副本中恢复单个作业:

Serverfault:从 MSDB 备份中恢复特定作业定义?

如果您希望它们采用更直接可用的格式,您可以右键单击并手动编写单个作业的脚本,或者如果您想一次编写服务器上的所有作业的脚本:

Stack Overflow:自动为所有 SQL Server 作业创建脚本


Kin*_*hah 7

另一种方法是使用dbatools导出到文件

Get-DbaAgentJob -SqlInstance workstation\sql2016 |  Export-DbaScript
Run Code Online (Sandbox Code Playgroud)

您甚至可以编写整个实例或子集的脚本,包括用于灾难恢复目的的代理作业、操作员、登录名等。

编辑:上面将可以灵活地过滤掉您不需要的工作。msdb 的备份/恢复都是工作..仅供参考。

  • +1 跳出框框思考! (4认同)