首页 > 数据库 > SQL Server > 正文

SQL Server 2005中的SSIS维护计划简析

2024-08-31 00:50:03
字体:
来源:转载
供稿:网友
,欢迎访问网页设计爱好者web开发。

  sql server的每一个版本都已经逐渐变得越来越自我调整和自我维护了。然而,对于基本维护的需求,例如删除索引碎片,更新统计数据,检查数据库一致性,以及进行备份仍然是不会消失的。你可以想象一下,索引的维护就像是给你的汽车换油,备份就像是买保险。你可以没有保险,但是一旦你需要它,它就在手边。同样的,你的汽车可以在没有换油的情况下跑上几千公里,但是经常维护会产生更好的性能,并且可以让你的汽车寿命延续几年。

  sql server 2005把维护计划以ssis包的方式予以实现,它为任务的定制提供更大的灵活性。现在开始计划你要执行的transact-sql命令,以便察看,而不要用没有文档记载的sql server 2000中的存储过程。另一个你可以检查的领域是执行历史,它可以使解决问题的维护计划在很大程度上简单化。

  sql server 2000中的维护计划

  让我们简单地回顾一下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: servernameusername. sqlmaint.exe failed. [sqlstate 42000] (error 22029). the step failed.

  幸运的是,你可以浏览到数据库维护计划的文件目录中,右击计划,并且选择“维护计划历史”来获得更加详细的错误信息。然而,即使是这样的解决问题的方法在碰到维护计划任务不总是可靠的时候,也会出错。

  在nutshell sql server2000 维护计划向导中,创建重要维护任务非常简单,但是从可用性和支持的角度来说,就差得远了。

  与维护计划的其他图形一样,在sql server2005中也有很大的改善。现在,维护计划是以sql server集成服务(ssis)包的形式实现的;这就允许在包含在维护计划中的任务之间创建优先约束。如果你还没有使用ssis的话,这个消息也许会对你造成威胁——但是不要担心,你仍然可以通过使用sql server管理套件(ssms)中的向导来建立一个维护计划。在ssis中构建维护计划,将会提供额外的灵活性,但是向导会帮助你开始,并且让你构建一个可靠的维护计划,而不需要你对ssis有任何的了解,正如你下面将要看到的。

  使用向导创建一个维护计划

  要通过使用向导来创建一个维护计划,首先浏览到ssms的管理目录,右击“维护计划”文件夹,然后选择维护计划向导。注意,sql server agent服务必须要运行起来,在你创建数据库维护计划的时候。最开始的向导界面允许你选择目标数据库,并且指定连接到服务器上必需的安全信任书。接下来,你就可以选择你想要执行的维护任务,如下图所示:

  

  屏幕截图1: 选择维护任务

  这个屏幕给你一个有关你想要完成的每一种类型的维护任务的大概描述。

|||

  接下来,你可以定义维护计划任务的执行顺序。例如,你可以在查看数据库一致性并且运行一个完全的数据库备份之前重新构建索引。然后,你就可以指定每个任务可能会影响到的目标数据库和对象。例如,重新构建索引可能会影响到单个的数据库,多个数据库,或者某个环境下的所有数据库。此外,你还能选择在哪个特定的表和索引视图上面重新构建索引。你还可以为重新构建索引制定一些高级选项,例如,你想要留给索引页面使用的空闲空间总量,无论你是否想要填充索引,还是你想要在重新构建它们的时候,还让它们在线。指定索引选项的屏幕如下所示:

  

  屏幕截图2: 指定索引选项

  接下来,为你想要执行的维护计划定义时间表。或者你还可以根据需要来运行维护计划。接下来的向导界面允许你指定记录维护计划执行过程中状态日至的文本文件。你可以指定电子邮件地址,以便将维护计划执行状态发送给你。最后一个屏幕提供了你在前面几个界面上选择的主要的维护计划选项。就是它了!正如我先前说过的,你不需要了解ssis就可以创建一个数据库维护计划。

  在你的ssis包后面的内容

  现在,让我们看看实际上在构建过程中发生了什么。要查看你刚刚创建的ssis包,右击维护计划,然后选择“修改”。你就可以看到类似下面的画面:

  

  屏幕截图3:查看ssis 包

  注意,蓝色箭头指出了执行的流程;蓝色的表示数据库一致性将会在“重新构建索引”任务完成之后进行检查。这个向导指挥让你评估是否每个任务都在执行下个任务之前完成了;所以,无论“重新构建索引”的任务成功了或者是失败了,维护计划都会继续执行下一步的检查数据库一致性任务。但是如果你想要按照某种条件来执行不同的任务,就是前面的任务是失败还是成功了?如果你双击蓝色箭头,ssis就会允许你编辑优先约束,如下图所示:

|||
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表