我对 SQL Agent 工作还很陌生,但我正在尝试为服务器建立维护机制,该服务器将在未知的时间间隔内关闭并再次打开。它可能会连续运行一个月而不关闭,也可能只在 9-5 点打开……我们不知道,客户也无法告诉我们,因为他们不知道。
所以我想知道的是,我需要做什么才能让 SQL Server 在到期时运行每月和每日作业,或者如果错过了到期日期,则让它们在服务器下次启动时运行。我可以想出一个混合定期作业和“开机时”作业的混合方案,但如果有更优雅的方法那就太好了。
显然,我需要确保 SQL Server 代理配置为在计算机启动时启动,但还有什么呢?
答案1
您的选择SQL Server 代理计划事件是:
- 每当 SQL Server 代理启动时。
- 每当计算机的 CPU 利用率处于您定义为空闲的水平时。
- 一次,在特定的日期和时间。按照重复的时间表。
如果你需要处理更多事件,那么你可以使用 Windows 调度程序并调用sql命令执行启动作业甚至可以直接执行BACKUP DATABASE命令。
答案2
正常安排作业,并在服务器启动时设置一个作业,运行一个脚本来查询所有作业并确定任何遗漏的作业并告诉它们现在执行是一个选项 - 但显然这取决于服务器的使用方式以及作业是否会影响用户。
如果盒子正在打开并需要立即执行,您真的希望立即触发所有这些追赶作业吗?您的脚本可以将它们重新安排到下一个安静时段(例如那天晚上),但从您所说的情况来看,无论如何,盒子可能会在窗口出现之前再次关闭。