让SQL Server数据库自动执行管理任务(二)
一、 如何停止计划的自动执行?
有些时间我们可能并不需要自动执行计划。如在数据库设计的时候,管理员并不需要这些自动执行的计划。为此需要把他们暂时停止。此时有哪些方法可以做到这一点呢?
一是可以把计划与作业剥离。计划与作业是两个独立的内容。如数据库完全备份与计划时间就是相互独立的。如果设置好了数据库完全备份的策略,但是没有把计划时间与这个作业进行关联的话,则数据库完全备份不会自动执行。此时如果需要执行这个作业的话,则就要进行手工启动。故当管理员暂时不想要某个计划的时候,可以把计划作业剥离,即在作业中去掉这个时间计划即可。
二是禁用作业或者计划。当管理员不需要某个作业自动运行的时候,可以把这个计划或者作业进用掉。禁用计划或者禁用作业都会让某个作业停止自动运行,但是他们仍然有微小的差异。如禁止计划的话,只是这个这个作业停止自动运行,但是管理员仍然可以手工执行它。可是禁用作业的话,则系统不仅不会自动运行,而且管理员还不能够手工执行它。这就好像给这个作业设置了终身监禁。为此,为了避免这种情况的发生,笔者是建议最好采用禁用计划而不是禁用作业。如此的话,在必要的时候管理员还可以手工启动该作业来应急。另外,如果这个计划将来仍然需要采用的话,笔者不建议把计划与作业剥离的方式来停止计划的自动执行;而是建议这种禁用计划的方式来完成。不然的话,下次需要的时候仍然需要把计划与作业关联,反而会增加工作量。
另外,如果这个测试计划以后再也不用时,有两种处理方法。一是把计划直接删除。这个是最彻底的方法,但是不会留下任何历史纪录。二是先把计划跟作业玻璃,然后再禁用这个计划。这虽然比较麻烦一点,而且会在数据库中留下垃圾数据。但是却可以保留历史纪录。这可能会对数据库的后续维护带来一定的帮助。到底不用的计划是删除还是禁用,没有一个统一的标准。还是需要根据数据库管理员的操作习惯来判断。
无论采取哪种方式,管理员都需要注意两点内容。一是必须显示的重新启动已禁用的计划。如果管理员只是更改了已禁用的计划策略,并不会重新启动这个计划,而需要管理员手工的启动。二是即使计划未启用,作业仍可以为响应警报而运行,或者由用户手动运行。如果作业计划未启用,则任何使用该计划的作业都不会启用该计划。