我们最近有一个服务器失败; 在这台服务器上,我们有几个计划夜间运行的工作。 在服务器死亡之前,我们已经备份了SQL Server(2005)数据库并将其恢复,但是在SQL Server代理中没有看到任何作业。 备份数据库不备份作业吗? 我不知道任何地方的工作被保存…我拧了吗?
作业存储在系统数据库MSDB中。 你支持了吗? 你需要恢复它,让你的工作回来。
你有两个select。 如果你打算基本上恢复一个服务器,正如二十世纪的男孩指出的那样,作业信息存储在msdb数据库中。 除了用户数据库之外,您还应该备份master和msdb,它们是系统数据库。
如果您只是想提取作业以在另一个现有服务器上启动作为恢复选项,则可以编写SQL Server代理作业。
这并不是对问题的直接回答,但我认为这是相关的。 实际上,您通常在SQL Server中创build的所有计划作业都可以使用osql或sqlcmd作为batch file来完成。 您可以从Windows任务计划程序运行该batch file。
哪种方法更好是味道的问题。 我喜欢从Windows使用batch file,因为我可以从batch file中运行其他的东西,batch file很容易在新的安装上复制,而不用担心恢复msdb。
JR
脚本是好的,因为您可以将脚本加载到源代码控制系统并保留更改日志。
但是你也应该备份MSDB。 腰带和吊带。
对于您所处的情况,正如您所指出的,如果您既没有MSDB备份,也没有保存作业的脚本,并且MSDB不可用,则必须从内存或其他来源重新创build作业。 (“我是否拧了”=是)
当恢复工作时,一定要确定你所做的工作,但是应该有适当的工作。
现在几个星期之后,你已经(希望)恢复了你的大部分关键工作,你应该重新审视你已经到位的想法:
在这样的情况下恢复可能很困难,但是如果你确保自己的工作能够恢复,那么你将不会再遇到性能问题,从而再次出现问题。
(当然,这些都是应该检查所有数据库服务器上的事情,但是跟进失败是重新检查最佳实践并查看可能丢失的东西的好时机。)