SQL维护计划教程.doc
SQL Server数据库维护计划的详细实施步骤作为网管员,无论其管理的网络的规模是大还是小,在日常的管理中除了维护网络平稳运行、及时排除网络故障、保护网络安全等工作以外,备份网络中关键数据也是其中的一个非常非常重要的工作环节。网络中的各种故障无非就分两种:软件故障和硬件故障。对于“硬件故障”可以通过维修或更换硬件设备得到及时解决;对于“软件故障”则可以通过重新安装或升级软件、重做网络或应用软件系统等方法及时解决,而且用此方法来解决网络故障大多需要一些基础的、关键的数据支持才能得以恢复正常。但是,网络中诸如此类的关键数据(特别是“应用软件系统”中的关键数据)的损坏或丢失,绝大部分是无法恢复和弥补的。即使可以恢复部分数据,弥补它们所花费的代价(诸如时间、人力、财力、物力等)都可能远远超出了公司的承受能力。所以说,注重数据的备份工作是网管员日常管理工作中的必须时刻关注的一项任务,也是必须周期性重复操作的一项工作。目录现行备份策略具体实现步骤结束语现行备份策略我公司在组建局域网时,考虑到商业企业的特点,仔细考量了购、销、存三大环节中发生的各种数据及其存储问题后,选定了以Windows 2000 Server为操作系统,SQL Server 2000为数据库平台来搭建局域网的应用系统的软件平台,以网线为载体将购、销、存等核心部门的计算机通过局域网平台紧密地连接起来。这样,各个核心部门每天的任何一笔业务都及时地、动态地存储到公司局域网的核心Dell服务器上的SQL Server 2000数据库中,并以此为基础平台向各方提供所需的各种数据服务。因此,自公司局域网开始正式运作之日起,作为网管员的我就非常注重对局域网中的关键数据特别是这些业务数据的备份工作。同时,我也希望备份数据的软件能够实现以下自动功能。功能1:能够在每天的某个固定的时刻(如夜晚0:00:00,当然这个时间是可以自主设定的)对包含所有业务数据库在内的所有关键数据库进行一次“完全备份”。功能2:能够在每天的0:00:00至23:59:59这段时间内,每间隔1个小时对功能1中所涉及到的各个数据库的事务日志进行“差异备份”。功能3:每天都能够保留功能1和功能2中所生成的数据库和事务日志的最近两天的备份(即:前一天的和前两天的),而且能够自动地删除久于两天前的所有数据库和事务日志的备份。功能4:定期(如每个星期一次)将所有关键数据库的完全备份的副本备份到磁带或其它存储介质上(这部分工作可能需要手工完成)。于是,围绕这些功能的实现,在日常管理工作中,我尽可能地尝试了各种备份数据的软件和方法,如Windows 2000自带的“备份”工具、SQL Server 2000自带的“备份”功能等。这些备份软件和方法的功能各有千秋,但是都存在以下缺点:一种就是需要人工干预,无法实现自动备份(如Windows 2000自带的“备份”工具)。如果采用这种方法,就必须时刻人工手动备份,万一哪天因为出差或其它原因没有进行备份,而这时又出现服务器或数据故障的话,那麻烦就大了。另一种就是能够实现自动备份,但是旧的备份不能被自动地删除(如SQL Server 2000自带的“备份”功能)。如果采取这种方法,就必须及时地手工删除旧的备份,否则再大的硬盘也会迅速地被用完。在相互比较后,我还是决定采用第二种SQL Server 2000自带的“备份”功能对关键数据库进行备份,因为它能够实现“自动备份”功能,比第一种略强。所以,在一段时期内,我每天上班后的第一件事就是先检查一下备份目录下各种数据的新的备份,然后手工删除旧的备份数据。这种做法一度让我很是苦恼。一天,我在利用SQL Server 2000的“帮助”查询某个Transact-SQL语句的语义解释时无意中阅读到“自动化管理任务”的内容。从头到尾地仔细阅读后,我不由得眼睛一亮,原来SQL Server 2000本身自带了一个能够实现我的备份要求的、强大的功能“数据库维护计划”。于是我立刻按照这部分内容的提示,以一个数据库为试验样本一步一步地操作,成功地创建了一个数据库维护计划。经过一个星期的试运行,这个计划果然能够实现自动备份调度,以及自动删除旧的数据备份,完全能够满足我的备份要求。从那时起,我就利用SQL Server 2000的“数据库维护计划”备份所有关键数据库,而且严格地、定期地执行功能4,每个星期五将完全备份的数据库备份到磁带和局域网中其它客户机(主要是用于网络管理的网管PC)的硬盘上。这样做的目的是,能同时异地保存三份相同的备份,减少故障带来的损失。而且,通过SQL Server 2000的“数据库维护计划”,我现在能够较轻松地备份所需各种数据,方便地管理其备份,相应地减少了日常工作量,也减轻了部分工作压力。具体实现步骤目录第一步:打开SQL Server“企业管理器”窗体第二步:找到“数据库维护计划”功能第三步:创建“数据库维护计划”第四步:维护和管理“数据库维护计划”第五步:启动SQL Server 2000代理以便执行“作业”第六步:检查结果“数据库维护计划”功能在SQL Server 2000的“企业管理器”中可以找到。说明:1.以下操作是在服务器的Windows 2000 Server上进行操作的。在Window 9X系统上操作相同。2.由于SQL Server 2000执行备份时将产生许多文件(特别是在进行事务日志备份时),所以建议按数据库名称分别建立独立的备份目录进行存储。3.以下所有操作过程当中一般不会对数据库的使用产生影响。第一步:打开SQL Server“企业管理器”窗体用鼠标单击任务栏上的“开始”按钮中的“程序(P)”菜单下的“Microsoft SQL Server”子菜单中的“企业管理器”菜单项,即可打开SQL Server 2000的“企业管理器”窗体。第二步:找到“数据库维护计划”功能在“企业管理器”窗体中左侧的树型选项卡中,用鼠标单击“+”图标扩展开“控制台根目录”下的“Microsoft SQL Servers”,可以看到其下有一个“SQL Server组”;接着继续扩展开“SQL Server组”,此时可以看到其下出现了服务器的名称(图1中的“JXNC-SERVER”就是我的服务器的名称);再继续扩展开此服务器,可以看到其下列出了诸如“数据库”、“数据转换服务”等项目;最后单击“管理”项目,可以看到其下存在一个“数据库维护计划”(如图1)。单击“数据库维护计划”项目,在“企业管理器”窗口右侧将会显示出已经存在的维护计划项目。每个维护计划均包括以下项目:1.名称:就是维护计划的名称。此名称可以自定义,中英文皆可。2.数据库:就是维护计划所进行维护的数据库的名称。因为一个维护计划允许同时维护多个数据库,所以此处可以显示出多个数据库的名称(在图1中可以看到名为“系统数据库备份”的数据库维护计划中的“数据库”就包括三个数据库:master、model和msdb)。3.服务器:也就是维护计划所维护的数据库所处的服务器的名称。“(local)”表示是本地服务器。4.对策:是指维护计划所需要进行的具体维护工作的内容。图1中有3个“数据库维护计划”均为“数据库备份,事务日志备份”,它的含义就是这些维护计划中同时对所指定的数据库进行“数据库”和“事务日志”的备份。第三步:创建“数据库维护计划”鼠标右击“数据库维护计划”项目,选择“新建维护计划(P)”功能,将打开“数据库维护计划向导”窗体,依照此向导能够创建一个新的“数据库维护计划”。步骤1:单击 “下一步(N)”按钮,打开“选择数据库”窗体(如图2)。在此窗体中可以选定一个或多个的数据库作为操作对象。为了叙述方便,我在此只选择了一个数据库“regie”。步骤2:单击图2中的“下一步(N)”按钮,打开“更新数据优化信息”窗体(如图3)。在此窗体中可以对数据库中的数据和索引重新进行组织,以及能够设定在满足一定条件的情况下,维护计划自动删除数据库中的未使用的空间,以便提高性能。但要注意的是,在此窗体中,只要选定了“重新组织数据和索引页R”复选框,“更新查询优化器所使用的统计。示例D”复选框将失效(变成灰色,不能选择)。而且“重新组织数据和索引页R”复选框和“从数据库文件中删除未使用的空间M”复选框二者只要有一个被选中,其下的“调度S”功能才有效。单击“更改C”按钮可以对“调度”进行自定义。各位读者可以根据自身情况决定是否选用其中的功能。当然也可以通过单击“帮助”按钮来查看各功能的具体含义。在此窗体中能够便捷地设定每项作业的持续运行时间和运行的频率。完成自己的设置后,一定要选定右上角的“启用调度B”复选框,这样一个作业调度才算真正完成了。步骤3:单击图3中的“下一步(N)”按钮,打开“检查数据库完整性”窗体。在此窗体中可以设定维护计划在备份数据库前自动检查数据库的完整性,以便检测由于硬件或软件错误而导致数据的不一致。在此窗体中只有先选定了“检查数据库完整性H”复选框,其下Sql Server 2005 数据库维护计划这个星期开始为了减轻工作压力开始使用数据库维护计划(SQL Server Maintenance Plan Wizard)维护数据库,由于以前都没用过,在个人使用的免费版(Express)里也没有这个功能,所以现在好好学习了一番,这里总结一下。维护计划向导可以用于帮助您设置核心维护任务,从而确保数据库执行良好,做到定期备份数据库以防系统出现故障,对数据库实施不一致性检查。维护计划向导可创建一个或多个 SQL Server 代理作业,代理作业将按照计划的间隔自动执行这些维护任务。它使您可以执行各种数据库管理任务,包括备份、运行数据库完整性检查、或以指定的间隔更新数据库统计信息。创建数据库维护计划可以让SQL Server有效地自动维护数据库,保持数据库运行在最佳状态,并为管理员节省了宝贵的时间。以下是可以安排为自动运行的一些维护任务:用新填充因子重新生成索引来重新组织数据和索引页上的数据。这确保了数据库页中包含的数据量和可用空间的平均分布,还使得以后能够更快地增长。通过删除空数据库页压缩数据文件。更新索引统计信息,确保查询优化器含有关于表中数据值分布的最新信息。这使得查询优化器能够更好地确定 访问数据的最佳方法,因为可以获得数据库中存储数据的详细信息。虽然 SQL Server 会定期自动更新索引统 计信息,但是此选项可以对统计信息立即进行强制更新。对数据库内的数据和数据页执行内部一致性检查,确保系统或软件故障没有损坏数据。备份数据库和事务日志文件。数据库和日志备份可以保留一段指定时间。这使您可以为备份创建一份历史记录 ,以便在需要将数据库还原到早于上一次数据库备份的时间的时候使用。还可以执行差异备份。运行 SQL Server 代理作业。这可以用来创建可执行各种操作的作业以及运行这些作业的维护计划。维护任务生成的结果可以作为报表写入文本文件,或写入 msdb 中的 sysmaintplan_log 和 sysmaintplan_log_detail 维护计划表。若要在日志文件查看器中查看结果,请右键单击“维护计划”,再单 击“查看历史记录”。以下是详细说明:Check Database Integrity(检查数据库完整性)任务检查指定数据库中所有对象 的分配和结构完整性。此任务可以检查单个数据库或多个数据库,您还可以选择是否也检查数据库索引,检查所有索引页以及表数据页的完整性。此任务封装 DBCC CHECKDB 语句。生成的代码:-检查当前数据库,取消信息性消息DBCC CHECKDB WITH NO_INFOMSGSShrink Database(收缩数据库任务)收缩数据库任务”对话框可以创建一 个任务,尝试减小所选数据库的大小。此任务封装了 DBCC SHRINKDATABASE 命令。选项:Shrink database when it grows beyond当数据库大小超过指定值时收缩数据库,指定引发此任务的数据库大小(MB)。Amount of free space to remain after shrink收缩后保留的 可用空间,当数据库文件中的可用空间达到此值时停止收缩。Retain freed space in database files选择在数据库文件中保留所释放的文件空间。如果指定 NOTRUNCATE 选项,数据文件好像没有收缩。Return freed space to operating system选择把数据文件中任何未使用空间被释放给操作系统。无需移动任何数据即可减小文件大小。生成的代码:-选择Retain freed space in database filesDBCC SHRINKDATABASE (N'AdventureWorks', 10, NOTRUNCATE)-选择Return freed space to operating systemDBCC SHRINKDATABASE(N'AdventureWorks', 10, TRUNCATEONLY)Reorganize Index(重新组织索引)重新组织 SQL Server 数据库表和视图中的索引。 通过使用“重新组织索引”任务,包可以重新组织单个数据库或多个数据库中的索引。如果此任务仅重新组织单个数据库中的索引,则可以选择任务要重新组织其索引的视图或表。“重新组织索引”任务还包含压缩大型对象数据的选项。大型对象数据是具有 image 、text、ntext、varchar(max)、nvarchar(max)、varbinary(max) 或 xml 数据类型的数据。此任务封装了 Transact-SQL ALTER INDEX 语句。如果选择压缩大型对象数据,则该语句使用 REORGANIZE WITH(LOB_COMPACTION = ON) 子句,否则 LOB_COMPACTION 将设置为 OFF。生成代码:(只选择了Employee表)-选择compact large objectsALTER INDEX PK_Employee_EmployeeID ON HumanResources.Employee REORGANIZE WITH ( LOB_COMPACTION = ON )-不选择ALTER INDEX PK_Employee_EmployeeID ON HumanResources.Employee REORGANIZE WITH ( LOB_COMPACTION = OFF )Rebuild Index(重新生成索引)重新生成 SQL Server 数据库表和视图中的索引。包可 以重新生成单个数据库或多个数据库中的索引。如果任务仅重新生成单个数据库中的索引,则可以选择任务要 重新生成其索引的视图和表。使用默认可用空间重新组织页删除数据库中表上的索引,并使用在创建索引时指 定的填充因子重新创建索引。此任务封装 ALTER INDEX REBUILD 语句并提供下列索引重新生成选项:Reorganize pages with the default amount of free space指定 FILLFACTOR 百 分比或使用原始的 FILLFACTOR 量。Change free space per page percentage to:填充索引使用 PAD_INDEX 选项可以在索引创建过程中设置中间级页中的可用空间百分比。将每页的可用空间百分比更改,删除数据库中表上的索引,并使用新的、自动计算的填充因子重新创建索引,从而在索引页上保留指定的可用空间。Sort results in tempdb使用 SORT_IN_TEMPDB 选项,该选项确定在索引创建 过程中生成的中间排序结果的临时存储位置。使用索引的IGNORE_DUP_KEY 选项,该选项指定对唯一聚集或非聚集索引上多行 INSERT 事务中的重复键值的错误响应 。Keep index online while reindexing使用 ONLINE 选项,用户可以在索引操作期间访问基础表或聚集索引数据以及任何关联的非聚集索引。生成代码:(只选择了Employee表)ALTER INDEX PK_Employee_EmployeeID ON HumanResources. Employee REBUILD WITH ( FILLFACTOR = 90, PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, SORT_IN_TEMPDB = OFF, ONLINE = OFF )Updata Statics(更新统计信息)为指定的表或索引视图中的一个或多个统计信息组( 集合)更新键值分布信息。此任务封装 UPDATE STATISTICS 语句。All existing statistics如果更新应用于所有统计信息,则暗示使用 WITH ALL 子句。Column statistics only如果更新仅 应用于列,则包含 WITH COLUMN 子句。Index statistics only如果更新仅应用于索引,则包含 WITH INDEX 子句。Full scan全部统计Sample by从每个索引所对应的表中抽样的数据,此样本的大小取决 于表中的行数和数据修改的频率。生成代码:(只选择了Employee表)UPDATE STATISTICS HumanResources.EmployeeWITH FULLSCANClean Up History(清除历史记录)使用“清除历史记录”对话框,可以放 弃 msdb 数据库表中旧的历史信息。此任务支持对备份和还原历史记录、Microsoft SQL Server 代理作业历史记录和维护计划历史记录进行删除。此任务封装 sp_delete_backuphistory 系统存储过程并将指定日期作为参数传递给该过程。选项:Backup and restore historySql Server Agent job historyMaintenance plan history生成代码:以下为引用的内容:declare dt datetime select dt = cast(N'2007-05-31T08:00:00' as datetime)exec msdb.dbo.sp_delete_backuphistory dtGOEXEC msdb.dbo.sp_purge_jobhistory oldest_date=dtGOEXECUTE msdb.sp_maintplan_delete_log null,null,dtGOExecute Sql Server Agent Job(执行 SQL Server 代理作业)任务运行 SQL Server 代理作业。SQL Server 代理作业能够自动执行您需要重复执行的任务。此任务封装 sp_start_job 系统 过程并把 SQL Server 代理作业的名称作为参数传递给该过程。Back Up Database Task备份用的,太熟悉了,不介绍了。Maintenance Cleanup Task此任务封装 master.dbo.xp_delete_file 系统过程,用来删除备份文件。Execute T-SQL Statement Task执行T-SQL 任务运行Transact-SQL 语句。这个任务用向导的时候是没有的,要到设计视图里面去拖出来。Notify Operator Task通知操作员任务将通知消息发送到 SQL Server 代理操作员。此任务是唯一一个不封装 Transact-SQL 语句或 DBCC 命令的数据库维护任务。执行维护计划最好按一定的顺序,首先是执行检查数据库完整性,然后是收缩数据库,重新生成索引或者重新组织索引任务,最后是更新统计信息。重新生成索引或者重新组织索引要根据情况选择不同的操作,两个一起选择没有什么意义。决定使用哪种碎片整理方法的第一步是分析索引以确定碎片程度。使用系统函数 sys.dm_db_index_physical_stats 可以检测特定索引、表或索引视图的所有索引、一个数据库中的所有索引或所有数据库中的所有索引中的碎片。知道碎片程度后,可以确定修复碎片的最佳方法。索引碎片不太多时,可以重新组织索引。不过,如果索引碎片非常多,重新生成索引则可以获得更好的结果。我们公司这些任务都是一个星期运行一次,几个数据库加起来有200G,数据库也不算很大,每次运行要两个小时以上,所以都是在凌晨进行。如果进行的是重新生成索引那么在执行的时候表是无法访问的,现在也没什么更好的解决方案。这个问题还在继续学习中!解SQL Server“数据库维护计划”因为一个维护计划允许同时维护多个数据库,所以此处可以显示出多个数据库的名称(在图1中可以看到名为“系统数据库备份”的数据库维护计划中的“数据库”就包括三个数据库:master、model和msdb)。3.服务器:也就是维护计划所维护的数据库所处的服务器的名称。“(local)”表示是本地服务器。4.对策:是指维护计划所需要进行的具体维护工作的内容。图1中有3个“数据库维护计划”均为“数据库备份,事务日志备份”,它的含义就是这些维护计划中同时对所指定的数据库进行“数据库”和“事务日志”的备份。第三步:创建“数据库维护计划”鼠标右击“数据库维护计划”项目,选择“新建维护计划(P)”功能,将打开“数据库维护计划向导”窗体,依照此向导能够创建一个新的“数据库维护计划”。步骤1:单击 “下一步(N)”按钮,打开“选择数据库”窗体(如图2)。在此窗体中可以选定一个或多个的数据库作为操作对象。为了叙述方便,我在此只选择了一个数据库“regie”。图2步骤2:单击图2中的“下一步(N)”按钮,打开“更新数据优化信息”窗体(如图3)。图3在此窗体中可以对数据库中的数据和索引重新进行组织,以及能够设定在满足一定条件的情况下,维护计划自动删除数据库中的未使用的空间,以便提高性能。但要注意的是,在此窗体中,只要选定了“重新组织数据和索引页R”复选框,“更新查询优化器所使用的统计。示例D”复选框将失效(变成灰色,不能选择)。而且“重新组织数据和索引页R”复选框和“从数据库文件中删除未使用的空间M”复选框二者只要有一个被选中,其下的“调度S”功能才有效。单击“更改C”按钮可以对“调度”进行自定义。各位读者可以根据自身情况决定是否选用其中的功能。当然也可以通过单击“帮助”按钮来查看各功能的具体含义。在此窗体中能够便捷地设定每项作业的持续运行时间和运行的频率。完成自己的设置后,一定要选定右上角的“启用调度B”复选框,这样一个作业调度才算真正完成了。步骤3:单击图3中的“下一步(N)”按钮,打开“检查数据库完整性”窗体。在此窗体中可以设定维护计划在备份数据库前自动检查数据库的完整性,以便检测由于硬件或软件错误而导致数据的不一致。在此窗体中只有先选定了“检查数据库完整性H”复选框,其下的“备份之前执行这些检查R”和“调度S”功能才有效。单击“更改C”按钮可以对“调度”进行自定义。各位读者可以自主决定,较好的一种做法就是选中“检查数据库完整性H”复选框(推荐,因为有可能会修正一些错误)。步骤4:在“检查数据库完整性”窗体中的“下一步(N)”按钮,打开“指定数据库备份计划”窗体。如需对数据库进行备份,则必须选定“作为维护计划的一部分来备份数据库A”复选框,而且必须指定存储备份文件的位置:磁带P或磁盘K。如果选择“磁盘K”作为数据库备份的位置,设定“调度”后单击“下一步(N)”按钮则显示“指定备份磁盘目录”窗体(如图4)。图4在图4中,可以具体指定存储备份文件的目录(可以使用默认的目录,也可自定义)、备份文件扩展名,而且能够指示备份计划自动地删除早于某个时间(图4中设定的是“2天”,也就是说两天前的所有备份文件将被自动地删除,只留下最近两天的备份)的备份文件。而图4中的“为每个数据库创建子目录C”功能只是在步骤1中选择了多个数据库时才有用,对于一个数据库作用不大。设定后,单击“下一步(N)”按钮则显示“指定事务日志备份计划”窗体。如果选择“磁带P”作为数据库备份的位置,设定“调度”后单击“下一步(N)”按钮则直接显示“指定事务日志备份计划”窗体。步骤5:指定“事务日志备份计划”的过程与步骤4的过程完全相同,只是在设定“调度”上稍有差别(因为我的要求是数据库每天备份一次,事务日志每1小时备份一次)。步骤6:对事务日志的备份计划全部设定后,单击“下一步(N)”按钮则显示“要生成的报表”窗体。在此窗体中可以指定用于存放整个备份计划执行过程中的日志的目录。设定过程与图4的操作及其相似。图5步骤7:完成步骤6后,单击“下一步(N)”按钮则显示“维护计划历史纪录”窗体。在此窗体中可以指定如何存储此维护计划的历史纪录(是存放在“本地服务器”上,还是在“远程服务器”上),而且通过指定表中的行数可以限定历史纪录的存储大小。步骤8:完成步骤7后,单击“下一步(N)”按钮则显示“正在完成数据库维护计划向导”窗体(如图5)。在此窗体中可以自定义一个“计划名P”(推荐,这样便于管理和识别),当然也可使用默认的“计划名P”。而且还可以通过对“计划名P”下的文本框中的内容进行确认,如有误,则可通过单击窗体中的“上一步B”按钮退回到相应的窗体进行修改。步骤9:完成步骤8后,单击“完成”按钮,则显示“维护计划已创建成功。”的提示框,再单击 “确定”按钮即成功地设定了一个新的数据库维护计划。从图6中可以看到,已经成功的创建了一个新的数据库维护计划“regie备份”。第四步:维护和管理“数据库维护计划”第三步完成后,对各个“数据库维护计划”的日常维护和管理都非常方便,只需要双击“数据库维护计划”即可对第三步中所涉及的内容进行变更、修正。图6如图6所示,鼠标右击“regie备份”,单击“属性R”,或者直接双击“regie备份”,打开“数据库维护计划”窗体。在此窗体中集成了第三步中涉及到的所有功能,每项功能都能任意修改,修改过程与第三步中的相应步骤一样。但需要说明的是,在设定图7中的“报表”选项卡下的“文本报表”中的“删除早于此时间的文本报表文件F”选项时,也就是第三步中的步骤6中的内容,无论您将其设定成“分钟”、“小时”、“天”,还是“月”,创建成功后都将被自动地更正为“周”,而且以后无论如何修改,保存后再去查看时它仍将显示为“周”,但不意味着其它选项无效,其它选项仍然有效。图7第五步:启动SQL Server 2000代理以便执行“作业”完成第三步后,还需启动SQL Server 2000 Agent(代理),以便执行“数据库维护计划”作业。与展开SQL Server 2000“数据库维护计划”的步骤一样,在“管理”项目中,可以发现存在一个“SQL Server 代理”(如图8)。图8单击“SQL Server 代理”下的“作业”子菜单,在“企业管理器”窗口右侧将会显示出已经存在的作业项目(在图8中可以看到已经存在17个作业项目)。每个作业项目均包括以下数据列:1.名称:当然是指作业的名称,可以自定义,中英文皆可。为了理解方便,建议用中英文结合。每当新建立一个“数据库维护计划”,将自动生成以下默认名称的作业:(1)当新建的“数据库维护计划”中设定了“备份数据库”功能时,将生成默认名为“DB 维护计划*的 DB 备份作业”的作业。(2)当新建的“数据库维护计划”中设定了“备份事务日志”功能时将生成默认名为“DB 维护计划*的 事务日志备份作业(多服务器)”的作业。以上(1)和(2)中的“*”处将显示“数据库维护计划”中的“计划名”(也就是第三步步骤8中设定的“计划名”)。2.分类:指明该作业当前所属的类别。缺省值为“未分类(本地)”。3.启用:指明该作业是否处于“启用”状态。4.可运行:指明该作业是否处于“可运行”状态。5.已调度:指明该作业是否处于“已调度”状态。6.状态:指明该作业当前的运行状态不在运行、正在运行。7.上次运行状态(开始日期):显示最近一次运行该作业后的状态(“已成功”、“失败”,还是“未知”),和运行时的日期和时间。8.下次运行日期:指明下一次运行该作业的日期和时间。如图8所示,鼠标右击“regie完全备份”作业,单击“属性R”,或者直接双击“regie完全备份”作业,打开作业的“属性”窗体。在此窗体中集成了该作业的详细的配置项。每个配置项都能任意修改。“属性”窗体中有四个选项卡: 常规:在此选项卡中可以重新设定作业名称(“名称N”文本框)、修改作业的分类(“分类Y”下拉框)、指定作业的所有者(“所有者W”下拉框)、简单地对作业进行描述(“描述R”文本框),以及决定是否启用此作业(“启用E”复选框)。 步骤:在此选项卡中可以新建、插入新的步骤,删除、编辑已有的步骤。单击“编辑E”按钮,在“编辑作业步骤”窗体中的“常规”选项卡中的“命令M”文本框中可以查阅到该作业的执行语句。 调度:在此选项卡中可以新建调度、新建警报,删除、编辑已有的调度。 通知:在此选项卡中可以设定作业完成时(即当作业成功时、作业失败时)执行的操作,即发送电子邮件、传呼操作员、发出网络警报信息、写入Windows应用程序事件日志、自动删除等操作。第六步:检查结果经过上述五个步骤后,一个完整的备份数据库的计划就建立起来了。可以通过“资源管理器”来检查备份目录下是否存在相应地备份文件。经过长时间的使用,如果以“保留2天的数据库完全备份和2天的每个一小时的事务日志备份”的备份策略来正确地建立了一个完整的数据库维护计划的话,无论何时查看相应备份目录下的文件,都应该存在102个文件:2个数据库的完整备份,即2个以“数据库名_db_yyyy mmddhhss.bak”格式为文件名的文件; 3个与数据库完整备份相对应的操作过程的记录报告文件,即以“数据库名”+“备份4_yyyymmddhhss.txt” 格式为文件名的文件; 48个事务日志的差异备份,即2天各24个以“数据库名_tlog_yyyymmddhhss.trn”格式为文件名的文件; 49个与事务日志的差异备份对应的操作过程的记录报告文件,即以“数据库名”+“备份6_yyyymmddhhss.txt” 格式为文件名的文件。以上文件名中,“数据库名”为第三步的步骤一中选定的数据库的名称;“yyyymmddhhss”是时间戳,其格式为:“yyyy”指“年”(4位数值),“mm”指“月”(2位数值,不足2位的补“0”),“dd”指“日”(2位数值,不足2位的补“0”),“hh”指“时”(2位数值,不足2位的补“0”),“ss”指“分”(2位数值,不足2位的补“0”)。结束语对于一个企业而言,日常运作中发生的各种业务所产生的所有数据,经过计算机不断地日积月累,逐渐成为公司的一种财富和资本。利用计算机,可以便捷地统计分析部分或全部的数据,通过各种形式的反馈(如图表、表格等),给公司的决策层用于参考,便于为公司的今后决策提供指导和帮助。正基于此,这些数据的价值随着时间的延续正呈现出几何速度的增长。因此我认为,对于数据的备份工作是网管员日常工作中最重要的工作之一。通过这次“数据库维护计划”的创建,我略有感受:1.经过这么长时间的运用,我认为“数据库维护计划”仍然存在不足之处,虽说“数据库维护计划”功能很强大,但是它最终的结果是生成一项作业,由“SQL Server 2000 Agent”服务定期执行它来完成对数据库的备份工作。这就要求“SQL Server 2000 Agent”服务能够正常地“运行”。从多次安装来看,在Windows 2000系统中“SQL Server 2000 Agent”服务能够正常运行,而且能随Windows 2000的启动自动运行。但是在Window 98系统(包括第二版)中,却不能正常运行。所以说,在Windows 98系统中即使依照上述步骤成功地创建了“数据库维护计划”,也会因为“SQL Server 2000 Agent”服务无法启动而变得没有任何作用。2.之所以选择“完全备份”,主要在于,在进行完全备份时,SQL Server将.mdf与其对应的.ldf文件进行对比,删除一些旧的、不必要的日志,然后将.mdf和.ldf文件进行合并、压缩后一起存储。 优点是:能最大可能地、完整地保存数据库。 缺点是:存储量随着数据库的增大而增大,存储时间也将随着数据库的增大而延长。3.在建立“数据库维护计划”过程,各位读者应该尽可能地去使用各种选项、功能,以便加深对“数据库维护计划”的理解和掌握。4.虽然Internet上有许多第三方备份软件和工具,但是大多数是共享版。由于担心知识产权问题、病毒问题和其它问题,所以我没有试用这些第三方软件。这样的话,它们的性能我就不清楚了。也许这些软件的功能非常强大,能够满足更多的、更高的要求。在这里我只是就Windows 2000和SQL Server 2000自带的“备份”工具和软件进行一个比较。高效维护数据库的关键技巧Paul S. Randal概览:§ 管理数据和事务日志文件§ 清除索引碎片§ 确保统计数据准确、最新§ 检测遭到破坏的数据库页§ 建立有效的备份策略 目录数据和日志文件管理 索引碎片 统计数据 损坏检测 备份 总结在一周之内多次有人向我征求高效维护生产数据库的建议。有时问题来自 DBA,他们正在实施新的解决方案,希望得到帮助对维护进行精细调整适合其新数据库的特点。但更为常见的情况是:提问的人不是专业 DBA,而是由于某种原因拥有数据库并承担相关责任的人员。我喜欢将这种角色称为“非自愿 DBA”。本文重点是为所有非自愿 DBA 提供数据库维护最佳实践的入门知识。在 IT 世界里,大多数任务和程序都没有一个简单、通用的解决方案可以高效维护数据库,但却有一些必须受到重视的关键领域。我所关心的五大重要领域是(没有任何特殊的重要性顺序):