备份和恢复SQL Server计划作业

我们最近有一个服务器失败; 在这台服务器上,我们有几个计划夜间运行的工作。 在服务器死亡之前,我们已经备份了SQL Server(2005)数据库并将其恢复,但是在SQL Server代理中没有看到任何作业。 备份数据库不备份作业吗? 我不知道任何地方的工作被保存…我拧了吗?

作业存储在系统数据库MSDB中。 你支持了吗? 你需要恢复它,让你的工作回来。

你有两个select。 如果你打算基本上恢复一个服务器,正如二十世纪的男孩指出的那样,作业信息存储在msdb数据库中。 除了用户数据库之外,您还应该备份master和msdb,它们是系统数据库。

如果您只是想提取作业以在另一个现有服务器上启动作为恢复选项,则可以编写SQL Server代理作业。

  1. 打开SQL Server Management Studio
  2. 使用对象资源pipe理器连接到有问题的SQL Server。
  3. 展开SQL Server代理
  4. 展开作业文件夹
  5. 右键单击作业脚本,您应该看到有几个选项的脚本作业。

这并不是对问题的直接回答,但我认为这是相关的。 实际上,您通常在SQL Server中创build的所有计划作业都可以使用osql或sqlcmd作为batch file来完成。 您可以从Windows任务计划程序运行该batch file。

哪种方法更好是味道的问题。 我喜欢从Windows使用batch file,因为我可以从batch file中运行其他的东西,batch file很容易在新的安装上复制,而不用担心恢复msdb。

JR

脚本是好的,因为您可以将脚本加载到源代码控制系统并保留更改日志。

但是你也应该备份MSDB。 腰带和吊带。

对于您所处的情况,正如您所指出的,如果您既没有MSDB备份,也没有保存作业的脚本,并且MSDB不可用,则必须从内存或其他来源重新创build作业。 (“我是否拧了”=是)

当恢复工作时,一定要确定你所做的工作,但是应该有适当的工作。

现在几个星期之后,你已经(希望)恢复了你的大部分关键工作,你应该重新审视你已经到位的想法:

  • 你的恢复模式是数据库应该是什么目的
  • 您的备份作业是否针对您的恢复模式和时间点恢复需求进行了优化?
  • 你是否应该维护索引?
  • 你应该保持统计吗?

在这样的情况下恢复可能很困难,但是如果你确保自己的工作能够恢复,那么你将不会再遇到性能问题,从而再次出现问题。

(当然,这些都是应该检查所有数据库服务器上的事情,但是跟进失败是重新检查最佳实践并查看可能丢失的东西的好时机。)