让我们简单地回顾一下SQL Server 2000中的数据库维护计划是什么样子。你通过点击一些向导的界面创建一个维护计划,它让你选择完全备份、事务日至备份,索引维护和检查数据库一致性的选项。这听起来很简单,是吗?是的,除非维护计划是个“黑盒子”向导并没有显示给你刚才创建的任务会执行的Transact-SQL语句。
更进一步地讲,如果你曾经检查过通过维护计划向导创建的任务的属性,你就会知道任务的步骤看起来是下面这个样子:
EXECUTE master.dbo.xp_sqlmaint N'-PlanID 7BCCF8E2-B8F4-4B92-BC3B-
F2FA1BAE25C0 -WriteHistory -VrfyBackup -BkUpMedia DISK -BkUpDB -UseDefDir -BkExt "BAK"'
为了了解这个维护计划屏幕之后的事情,你必须让你自己熟悉xp_sqlmaint扩展存储程序。这个程序也叫做 SQLMAINT工具,大概有一打的开关。此外,你还可以从命令行调用SQLMAINT。如果维护计划任务在任务历史中曾经失败过,在任务历史中显示了如下完全没有意义的信息片断的话,也许这样更重要:
Executed as user: ServerName\UserName. sqlmaint.exe failed. [SQLSTATE 42000] (Error 22029). The step failed.
幸运的是,你可以浏览到数据库维护计划的文件目录中,右击计划,并且选择“维护计划历史”来获得更加详细的错误信息。然而,即使是这样的解决问题的方法在碰到维护计划任务不总是可靠的时候,也会出错。
在nutshell SQL Server2000 维护计划向导中,创建重要维护任务非常简单,但是从可用性和支持的角度来说,就差得远了。
与维护计划的其他图形一样,在SQL Server2005中也有很大的改善。现在,维护计划是以SQL Server集成服务(SSIS)包的形式实现的;这就允许在包含在维护计划中的任务之间创建优先约束。如果你还没有使用SSIS的话,这个消息也许会对你造成威胁——但是不要担心,你仍然可以通过使用SQL Server管理套件(SSMS)中的向导来建立一个维护计划。在SSIS中构建维护计划,将会提供额外的灵活性,但是向导会帮助你开始,并且让你构建一个可靠的维护计划,而不需要你对SSIS有任何的了解,正如你下面将要看到的。
关注此文的读者还看过: