SQL数据库维护全析(免费)_第1页
SQL数据库维护全析(免费)_第2页
SQL数据库维护全析(免费)_第3页
已阅读5页,还剩34页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、sql server 数据库维护方案的实施步骤作为网管员,无论其治理的网络的规模是大还是小,在日常的治理中除了维护网络平稳运行、准时排解网络故障、爱护网络平安等工作以外,备份网络中关键数据也是其中的一个格外格外重要的工作环节。网络中的各种故障无非就分两种:软件故障和硬件故障。对于“硬件故障”可以通过修理或更换硬件设备得到准时解决;对于“软件故障”则可以通过重新安装或升级软件、重做网络或应用软件系统等方法准时解决,而且用此方法来解决网络故障大多需要一些基础的、关键的数据支持才能得以恢复正常。但是,网络中诸如此类的关键数据(特别是“应用软件系统”中的关键数据)的损坏或丢失,绝大部分是无法恢复和弥补

2、的。即使可以恢复部分数据,弥补它们所花费的代价(诸如时间、人力、财力、物力等)都可能远远超出了公司的承受力量。所以说,留意数据的备份工作是网管员日常治理工作中的必需时刻关注的一项任务,也是必需周期性重复操作的一项工作。名目现行备份策略具体实现步骤结束语现行备份策略我公司在组建局域网时,考虑到商业企业的特点,认真考量了购、销、存三大环节中发生的各种数据及其存储问题后,选定了以 windows 2000 server 为操作系统,sql server 2000 为数据库平台来搭建局域网的应用系统的软件平台,以网线为载体将购、销、存等核心部门的计算机通过局域网平台紧密地连接起来。这样,各个核心部门每

3、天的任何一笔业务都准时地、动态地存储到公司局域网的核心 dell 服务器上的 sql server 2000 数据库中,并以此为基础平台向各方供应所需的各种数据服务。因此,自公司局域网开头正式运作之日起,作为网管员的我就格外留意对局域网中的关键数据特别是这些业务数据的备份工作。同时,我也期望备份数据的软件能够实现以下自动功能。功能 1:能够在每天的某个固定的时刻(如夜晚 0:00:00,固然这个时间是可以自主设定的 )对包含全部业务数据库在内的全部关键数据库进行一次“完全备份”。功能 2:能够在每天的 0:00:00 至 23:59:59 这段时间内,每间隔1 个小时对功能1 中所涉及到的各个

4、数据库的事务日志进行“差异备份”。功能 3:每天都能够保留功能 1 和功能 2 中所生成的数据库和事务日志的最近两天的备份(即:前一天的和前两天的),而且能够自动地删除久于两天前的全部数据库和事务日志的备份。功能 4:定期(如每个星期一次)将全部关键数据库的完全备份的副本备份到磁带或其它存储介质上(这部分工作可能需要手工完成)。于是,围绕这些功能的实现,在日常治理工作中,我尽可能地尝试了各种备份数据的软件和方法,如 windows 2000 自带的“备份”工具、sql server 2000 自带的“备份”功能等。这些备份软件和方法的功能各有千秋,但是都存在以下缺点:一种就是需要人工干预,无法

5、实现自动备份(如 windows 2000 自带的“备份”工具)。假如接受这种方法,就必需时刻人工手动备份,万一哪天由于出差或其它缘由没有进行备份,而这时又消灭服务器或数据故障的话,那麻烦就大了。另一种就是能够实现自动备份,但是旧的备份不能被自动地删除(如 sql server 2000 自带的“备份”功能)。假照实行这种方法,就必需准时地手工删除旧的备份,否则再大的硬盘也会快速地被用完。在相互比较后,我还是打算接受其次种sql server 2000 自带的“备份”功能对关键数据库进行备份,由于它能够实现“自动备份”功能,比第一种略强。所以,在一段时期内,我每天上班后的第一件事就是先检查一下

6、备份名目下各种数据的新的备份,然后手工删除旧的备份数据。这种做法一度让我很是苦恼。一天,我在利用 sql server 2000 的“挂念”查询某个 transact-sql 语句的语义解释时无意中阅读到“自动化治理任务”的内容。从头到尾地认真阅读后,我不由得眼睛一亮,原来 sql server 2000 本身自带了一个能够实现我的备份要求的、强大的功能“数据库维护方案”。于是我马上依据这部分内容的提示, 以一个数据库为试验样本一步一步地操作,成功地创建了一个数据库维护方案。经过一个星期的试运行,这个方案果真能够实现自动备份调度,以及自动删除旧的数据备份,完全能够满足我的备份要求。从那时起,我

7、就利用 sql server 2000 的“数据库维护方案”备份全部关键数据库,而且严格地、定期地执行功能4,每个星期五将完全备份的数据库备份到磁带和局域网中其它客户机(主要是用于网络治理的网管 pc)的硬盘上。这样做的目的是,能同时异地保存三份相同的备份,削减故障带来的损失。而且,通过 sql server 2000 的“数据库维护方案”,我现在能够较轻松地备份所需各种数据,便利地治理其备份,相应地削减了日常工作量,也减轻了部分工作压力。具体实现步骤名目第一步:打开 sql server“企业治理器”窗体其次步:找到“数据库维护方案”功能第三步:创建“数据库维护方案”第四步:维护和治理“数据

8、库维护方案”第五步:启动 sql server 2000 代理以便执行“作业” 第六步:检查结果“数据库维护方案”功能在 sql server 2000 的“企业治理器”中可以找到。说明:1. 以下操作是在服务器的 windows 2000 server上进行操作的。在 window 9x 系统上操作相同。2. 由于 sql server 2000 执行备份时将产生很多文件(特别是在进行事务日志备份时),所以建议按数据库名称分别建立独立的备份名目进行存储。3. 以下全部操作过程当中一般不会对数据库的使用产生影响。第一步:打开 sql server“企业治理器”窗体用鼠标单击任务栏上的“开头”按

9、钮中的“程序(p)”菜单下的“microsoft sql server”子菜单中的“企业治理器”菜单项,即可打开sql server 2000 的“企业治理器”窗体。其次步:找到“数据库维护方案”功能在“企业治理器”窗体中左侧的树型选项卡中,用鼠标单击“+”图标扩开放 “把握台根名目”下的“microsoft sql servers”,可以看到其下有一个“sql server 组”;接着连续扩开放“sql server 组”,此时可以看到其下消灭了服务器的名称(图 1 中的“jxnc-server”就是我的服务器的名称);再连续扩开放此服务器,可以看到其下列出了诸如“数据库”、“数据转换服务”

10、等项目;最终单击“治理”项目,可以看到其下存在一个“数据库维护方案”(如图 1)。单击“数据库维护方案”项目,在“企业治理器”窗口右侧将会显示出已经存在的维护方案项目。每个维护方案均包括以下项目:1. 名称:就是维护方案的名称。此名称可以自定义,中英文皆可。2. 数据库:就是维护方案所进行维护的数据库的名称。由于一个维护方案允许同时维护多个数据库,所以此处可以显示出多个数据库的名称(在图 1 中可以看到名为“系统数据库备份”的数据库维护方案中的“数据库”就包括三个数据库:master、model 和 msdb)。3. 服务器:也就是维护方案所维护的数据库所处的服务器的名称。“(local)”表

11、示是本地服务器。4. 对策:是指维护方案所需要进行的具体维护工作的内容。图 1 中有 3 个“数据库维护方案”均为“数据库备份,事务日志备份”,它的含义就是这些维护方案中同时对所指定的数据库进行“数据库”和“事务日志” 的备份。第三步:创建“数据库维护方案”鼠标右击“数据库维护方案”项目,选择“新建维护方案(p)”功能,将打开“数据库维护方案向导”窗体,依照此向导能够创建一个新的“数据库维护方案”。步骤 1:单击 “下一步(n)”按钮,打开“选择数据库”窗体(如图 2)。在此窗体中可以选定一个或多个的数据库作为操作对象。为了叙述便利,我在此只选择了一个数据库“regie”。步骤 2:单击图 2

12、 中的“下一步(n)”按钮,打开“更新数据优化信息”窗体(如图 3)。在此窗体中可以对数据库中的数据和索引重新进行组织,以及能够设定在满足一定条件的状况下,维护方案自动删除数据库中的未使用的空间,以便提高性能。但要留意的是,在此窗体中,只要选定了“重新组织数据和索引页r”复选框,“更新查询优化器所使用的统计。示例d”复选框将失效 (变成灰色,不能选择)。而且“重新组织数据和索引页r”复选框和“从数据库文件中删除未使用的空间m”复选框二者只要有一个被选中,其下的“调度s”功能才有效。单击“更改c”按钮可以对“调度”进行自定义。各位读者可以依据自身状况打算是否选用其中的功能。固然也可以通过单击“帮

13、助”按钮来查看各功能的具体含义。在此窗体中能够便捷地设定每项作业的持续运行时间和运行的频率。完成自己的设置后,肯定要选定右上角的“启用调度b”复选框,这样一个作业调度才算真正完成了。步骤 3:单击图 3 中的“下一步(n)”按钮,打开“检查数据库完整性”窗体。在此窗体中可以设定维护方案在备份数据库前自动检查数据库的完整性,以便检测由于硬件或软件错误而导致数据的不全都。在此窗体中只有先选定了“检查数据库完整性h”复选框,其下sql server 2005 数据库维护方案这个星期开头为了减轻工作压力开头使用数据库维护方案(sql servermaintenance plan wizard) 维护数

14、据库,由于以前都没用过,在个人使用的免费版(express)里也没有这个功能,所以现在好好学习了一番,这里总结一下。维护方案向导可以用于挂念您设置核心维护任务,从而确保数据库执行良好,做到定期备份数据库以防系统消灭故障,对数据库实施不全都性检查。维护方案向导可创建一个或多个 sql server 代理作业,代理作业将依据方案的间隔自动执行这些维护任务。它使您可以执行各种数据库治理任务,包括备份、运行数据库完整性检查、或以指定的间隔更新数据库统计信息。创建数据库维护方案可以让 sql server 有效地自动维护数据库,保持数据库运行在最佳状态,并为治理员节约了贵重的时间。以下是可以支配为自动运

15、行的一些维护任务:用新填充因子重新生成索引来重新组织数据和索引页上的数据。这确保了数据库页中包含的数据量和可用空间的平均分布,还使得以后能够更快地增长。通过删除空数据库页压缩数据文件。更新索引统计信息,确保查询优化器含有关于表中数据值分布的最新信息。这使得查询优化器能够更好地确定 访问数据的最佳方法,由于可以获得数据库中存储数据的具体信息。虽然 sql server 会定期自动更新索引统 计信息,但是此选项可以对统计信息马上进行强制更新。对数据库内的数据和数据页执行内部全都性检查,确保系统或软件故障没有损坏数据。备份数据库和事务日志文件。数据库和日志备份可以保留一段指定时间。这使您可以为备份创

16、建一份历史记录 ,以便在需要将数据库还原到早于上一次数据库备份的时间的时候使用。还可以执行差异备份。运行 sql server 代理作业。这可以用来创建可执行各种操作的作业以及运行这些作业的维护方案。维护任务生成的结果可以作为报表写入文本文件,或写入msdb 中的sysmaintplan_log 和 sysmaintplan_log_detail 维护方案表。若要在日志文件查看器中查看结果,请右键单击“维护方案”,再单 击“查看历史记录”。以下是具体说明:check database integrity(检查数据库完整性)任务检查指定数据库中全部对象 的安排和结构完整性。此任务可以检查单个数据

17、库或多个数据库,您还可以选择是否也检查数据库索引 ,检查全部索引页以及表数据页的完整性。此任务封装 dbcc checkdb 语句。生成的代码:-检查当前数据库,取消信息性消息dbcc checkdb with no_infomsgsshrink database(收缩数据库任务)收缩数据库任务”对话框可以创建一 个任务,尝试减小所选数据库的大小。此任务封装了 dbcc shrinkdatabase 命令。选项:shrink database when it grows beyond当数据库大小超过指定值时收缩数据库,指定引发此任务的数据库大小(mb)。amount of free space

18、 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”adventure

19、works”, 10, notruncate)-选择 return freed space to operating systemdbcc shrinkdatabase(n”adventureworks”, 10, truncateonly)reorganize index(重新组织索引)重新组织 sql server 数据库表和视图中的索引。 通过使用“重新组织索引”任务,包可以重新组织单个数据库或多个数据库中的索引。假如此任务仅重新组织单个数据库中的索引,则可以选择任务要重新组织其索引的视图或表。“重新组织索引 ” 任务还包含压缩大型对象数据的选项。大型对象数据是具有image 、text

20、、ntext、varchar(max)、nvarchar(max)、varbinary(max) 或 xml数据类型的数据。此任务封装了 transact-sql alter index 语句。如 果 选 择 压 缩 大 型 对 象 数 据 , 则 该 语 句 使 用 reorganize with(lob_compaction = on) 子句,否则 lob_compaction 将设置为off。生成代码:(只选择了 employee 表)-选择 compact large objectsalterindexpk_employee_employeeidon humanresources.em

21、ployee reorganize with ( lob_compaction = on )-不选择alterindexpk_employee_employeeidon humanresources.employee reorganize with ( lob_compaction = off )rebuild index(重新生成索引)重新生成 sql server 数据库表和视图中的索引。包可 以重新生成单个数据库或多个数据库中的索引。假如任务仅重新生成单个数据库中的索引,则可以选择任务要 重新生成其索引的视图和表。使用默认可用空间重新组织页删除数据库中表上的索引,并使用在创建索引时指 定

22、的填充因子重新创建索引。此任务封装 alter index rebuild 语句并供应下列索引重新生成选项:reorganize pages with the default amount of free space指定 fillfactor 百 分比或使用原始的 fillfactor 量。change free space per page percentage to:填充索引使用 pad_index 选项可以在索引创建过程中设置中间级页中的可用空间百分比。将每页的可用空间百分比更改,删除数据库中表上的索引,并使用新的、自动计算的填充因子重新创建索引,从而在索引页上保留指定的可用空间。sor

23、t results in tempdb使用 sort_in_tempdb 选项,该选项确定在索引创建 过程中生成的中间排序结果的临时存储位置。使用索引的 ignore_dup_key 选项,该选项指定对唯一聚拢或非聚拢索引上多行 insert 事务中的重复键值的错误响应 。keep index online while reindexing使用 online 选项,用户可以在索引操作期间访问基础表或聚拢索引数据以及任何关联的非聚拢索引。生成代码:(只选择了 employee 表)alter index pk_employee_employeeid on humanresources. empl

24、oyee 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 al

25、l 子句。column statistics only假如更新仅 应用于列,则包含 with column 子句。index statistics only假如更新仅应用于索引,则包含 with index 子句。full scan全部统计sample by从每个索引所对应的表中抽样的数据,此样本的大小取决 于表中的行数和数据修改的频率。生成代码:(只选择了 employee 表)update statistics humanresources.employee with fullscanclean up history(清除历史记录)使用“清除历史记录”对话框,可以放 弃 msdb 数据库表

26、中旧的历史信息。此任务支持对备份和还原历史记录、microsoft sql server 代理作业历史记录和维护方案历史记录进行删除。此任务封装 sp_delete_backuphistory 系统存储过程并将指定日期作为参数传递给该过程。选项:backup and restore history sql server agent job history maintenance plan history 生成代码:以下为引用的内容:declare dt datetime select dt = cast(n”2007-05-31t08:00:00” asdatetime)exec msdb.d

27、bo.sp_delete_backuphistory dt goexec msdb.dbo.sp_purge_jobhistoryoldest_date=dt goexecute msdb.sp_maintplan_delete_log null,null,dt goexecute sql server agent job(执行 sql server 代理作业)任务运行 sql server 代理作业。sql server 代理作业能够自动执行您需要重复执行的任务。此任务封装 sp_start_job 系统 过程并把 sql server 代理作业的名称作为参数传递给该过程。back up d

28、atabase 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 命令的数据库维护任务。执行维护方案最好按肯定的挨次,首先是执

29、行检查数据库完整性,然后是收缩数据库,重新生成索引或者重新组织索引任务,最终是更新统计信息。重新生成索引或者重新组织索引要依据状况选择不同的操作,两个一起选择没有什么意义。打算使用哪种碎片整理方法的第一步是分析索引以确定碎片程 度。使用系统函数 sys.dm_db_index_physical_stats 可以检测特定索引、表或索引视图的全部索引、一个数据库中的全部索引或全部数据库中的全部索引中的碎片。知道碎片程度后,可以确定修复碎片的最佳方法。索引碎片不太多时,可以重新组织索引。不过,假如索引碎片格外多,重新生成索引则可以获得更好的结果。我们公司这些任务都是一个星期运行一次,几个数据库加起来

30、有 200g,数据库也不算很大,每次运行要两个小时以上,所以都是在凌晨进行。假如进行的是重新生成索引那么在执行的时候表是无法访问的,现在也没什么更好的解决方案。这个问题还在连续学习中!解 sql server“数据库维护方案”由于一个维护方案允许同时维护多个数据库,所以此处可以显示出多个数据库的名称(在图 1 中可以看到名为“系统数据库备份”的数据库维护方案中的“数据库”就包括三个数据库:master、model 和 msdb)。3. 服务器:也就是维护方案所维护的数据库所处的服务器的名称。 “(local)” 表示是本地服务器。4. 对策:是指维护方案所需要进行的具体维护工作的内容。图 1

31、中有 3 个“数据库维护方案”均为“数据库备份,事务日志备份”,它的含义就是这些维护方案中同时对所指定的数据库进行“数据库”和“事务日志”的备份。第三步:创建“数据库维护方案”鼠标右击“数据库维护方案”项目,选择“新建维护方案(p)”功能,将打开“数据库维护方案向导”窗体,依照此向导能够创建一个新的“数据库维护方案”。步骤 1:单击 “下一步(n)”按钮,打开“选择数据库”窗体(如图 2)。在此窗体中可以选定一个或多个的数据库作为操作对象。为了叙述便利,我在此只选择了一个数据库“regie”。图 2步骤 2:单击图 2 中的“下一步(n)”按钮,打开“更新数据优化信息”窗体(如图 3)。图 3

32、在此窗体中可以对数据库中的数据和索引重新进行组织,以及能够设定在满足肯定条件的状况下,维护方案自动删除数据库中的未使用的空间,以便提高性能。但要留意的是,在此窗体中,只要选定了“重新组织数据和索引页r”复选框,“更新查询优化器所使用的统计。示例d”复选框将失效(变成灰色,不能选择)。而且“重新组织数据和索引页r”复选框和“从数据库文件中删除未使用的空间 m” 复选框二者只要有一个被选中,其下的“调度s”功能才有效。单击“更改c”按钮可以对“调度”进行自定义。各位读者可以依据自身状况打算是否选用其中的功能。固然也可以通过单击 “挂念”按钮来查看各功能的具体含义。在此窗体中能够便捷地设定每项作业的

33、持续运行时间和运行的频率。完成自己的设置后,肯定要选定右上角的“启用调度b”复选框,这样一个作业调度才算真正完成了。步骤 3:单击图 3 中的“下一步(n)”按钮,打开“检查数据库完整性”窗体。在此窗体中可以设定维护方案在备份数据库前自动检查数据库的完整性,以便检测由于硬件或软件错误而导致数据的不全都。在此窗体中只有先选定了 “检查数据库完整性h”复选框,其下的“备份之前执行这些检查r”和“调度s”功能才有效。单击“更改c”按钮可以对“调度”进行自定义。各位读者可以自主打算,较好的一种做法就是选中“检查数据库完整性h”复选框(推举,由于有可能会修正一些错误)。步骤 4:在“检查数据库完整性”窗

34、体中的“下一步(n)”按钮,打开“指定数据库备份方案”窗体。如需对数据库进行备份,则必需选定 “作为维护方案的一部分来备份数据库 a”复选框,而且必需指定存储备份文件的位置:磁带p或磁盘k。假如选择“磁盘k”作为数据库备份的位置,设定“调度”后单击“下一步(n)”按钮则显示“指定备份磁盘名目”窗体(如图 4)。图 4在图 4 中,可以具体指定存储备份文件的名目(可以使用默认的名目,也可自定义)、备份文件扩展名,而且能够指示备份方案自动地删除早于某个时间(图 4 中设定的是“2 天”,也就是说两天前的全部备份文件将被自动地删除,只留下最近两天的备份)的备份文件。而图 4 中的“为每个数据库创建子

35、名目c”功能只是在步骤 1 中选择了多个数据库时才有用,对于一个数据库作用不大。设定后,单击“下一步(n)”按钮则显示“指定事务日志备份方案”窗体。假如选择“磁带p”作为数据库备份的位置,设定“调度”后单击“下一步(n)”按钮则直接显示“指定事务日志备份方案”窗体。步骤5:指定“事务日志备份方案”的过程与步骤4 的过程完全相同,只是在设定“调度”上稍有差别(由于我的要求是数据库每天备份一次,事务日志每1 小时备份一次)。步骤 6:对事务日志的备份方案全部设定后,单击“下一步(n)”按钮则显示“要生成的报表”窗体。在此窗体中可以指定用于存放整个备份方案执行过程中的日志的名目。设定过程与图 4 的

36、操作及其相像。图 5步骤 7:完成步骤 6 后,单击“下一步(n)”按钮则显示“维护方案历史纪录”窗体。在此窗体中可以指定如何存储此维护方案的历史纪录(是存放在“本地服务器”上, 还是在“远程服务器”上),而且通过指定表中的行数可以限定历史纪录的存储大小。步骤 8:完成步骤 7 后,单击“下一步(n)”按钮则显示“正在完成数据库维护方案向导”窗体(如图 5)。在此窗体中可以自定义一个“方案名p”(推举,这样便于治理和识别),固然也可使用默认的“方案名p”。而且还可以通过对“方案名p”下的文本框中的内容进行确认,如有误,则可通过单击窗体中的“上一步b”按钮退回到相应的窗体进行修改。步骤 9:完成

37、步骤 8 后,单击“完成”按钮,则显示“维护方案已创建成功。”的提示框,再单击 “确定”按钮即成功地设定了一个新的数据库维护方案。从图 6 中可以看到,已经成功的创建了一个新的数据库维护方案“regie 备份”。第四步:维护和治理“数据库维护方案”第三步完成后,对各个“数据库维护方案”的日常维护和治理都格外便利,只需要双击“数据库维护方案”即可对第三步中所涉及的内容进行变更、修正。图 6如图 6 所示,鼠标右击“regie 备份”,单击“属性r”,或者直接双击“regie 备份”, 打开“数据库维护方案”窗体。在此窗体中集成了第三步中涉及到的全部功能,每项功能都能任意修改,修改过程与第三步中的

38、相应步骤一样。但需要说明的是,在设定图7 中的“报表”选项卡下的“文本报表”中的“删除早于此时间的文本报表文件f”选项时,也就是第三步中的步骤 6 中的内容,无论您将其设定成“分钟”、“小时”、“天”,还是“月”,创建成功后都将被自动地更正为“周”, 而且以后无论如何修改,保存后再去查看时它仍将显示为“周”,但不意味着其它选项无效,其它选项仍旧有效。图 7第五步:启动 sql server 2000 代理以便执行“作业”完成第三步后,还需启动 sql server 2000 agent(代理),以便执行“数据库维护方案”作业。与开放 sql server 2000“数据库维护方案”的步骤一样,

39、在“治理”项目中,可以发觉存在一个“sql server 代理”(如图 8)。图 8单击“sql server 代理”下的“作业”子菜单,在“企业治理器”窗口右侧将会显示出已经存在的作业项目(在图 8 中可以看到已经存在 17 个作业项目)。每个作业项目均包括以下数据列:1. 名称:固然是指作业的名称,可以自定义,中英文皆可。为了理解便利,建议用中英文结合。每当新建立一个“数据库维护方案”,将自动生成以下默认名称的作业:(1) 当新建的“数据库维护方案”中设定了“备份数据库”功能时,将生成默认名为“d b 维护方案*的 db 备份作业”的作业。(2) 当新建的“数据库维护方案”中设定了“备份事

40、务日志”功能时将生成默认名为“d b 维护方案*的 事务日志备份作业(多服务器)”的作业。以上(1)和(2)中的“*” 处将显示“数据库维护方案”中的“方案名”(也就是第三步步骤 8 中设定的“方案名”)。2. 分类:指明该作业当前所属的类别。缺省值为“未分类(本地)”。3. 启用:指明该作业是否处于“启用”状态。4. 可运行:指明该作业是否处于“可运行”状态。5. 已调度:指明该作业是否处于“已调度”状态。6. 状态:指明该作业当前的运行状态不在运行、正在运行。7. 上次运行状态(开头日期):显示最近一次运行该作业后的状态 (“已成功”、“失败”,还是“未知”),和运行时的日期和时间。8.

41、下次运行日期:指明下一次运行该作业的日期和时间。如图 8 所示,鼠标右击“regie 完全备份”作业,单击“属性r”,或者直接双击“re gie 完全备份”作业,打开作业的“属性”窗体。在此窗体中集成了该作业的具体的配置项。每个配置项都能任意修改。“属性”窗体中有四个选项卡: 常规:在此选项卡中可以重新设定作业名称(“名称n”文本框)、修改作业的分类(“分类y”下拉框)、指定作业的全部者(“全部者w”下拉框)、简洁地对作业进行描述(“描述r”文本框),以及打算是否启用此作业(“启用e”复选框)。 步骤:在此选项卡中可以新建、插入新的步骤,删除、编辑已有的步骤。单击“编辑e”按钮,在“编辑作业步

42、骤”窗体中的“常规”选项卡中的“命令m”文本框中可以查阅到该作业的执行语句。 调度:在此选项卡中可以新建调度、新建警报,删除、编辑已有的调度。 通知:在此选项卡中可以设定作业完成时(即当作业成功时、作业失败时)执行的操作,即发送电子邮件、传呼操作员、发出网络警报信息、写入 windows 应用程序大事日志、自动删除等操作。第六步:检查结果经过上述五个步骤后,一个完整的备份数据库的方案就建立起来了。可以通过“资源治理器”来检查备份名目下是否存在相应地备份文件。经过长时间的使用,假如以“保留 2 天的数据库完全备份和 2 天的每个一小时的事务日志备份”的备份策略来正确地建立了一个完整的数据库维护方

43、案的话,无论何时查看相应备份名目下的文件,都应当存在 102 个文件: 2 个数据库的完整备份,即 2 个以“数据库名_db_yyyy mmddhhss.bak”格式为文件名的文件; 3 个与数据库完整备份相对应的操作过程的记录报告文件,即以“数据库名”+ “备份 4_yyyymmddhhss.txt” 格式为文件名的文件; 48 个事务日志的差异备份,即 2 天各 24 个以“数据库名_tlog_yyyymmddhhss.trn”格式为文件名的文件; 49 个与事务日志的差异备份对应的操作过程的记录报告文件,即以“数据库名”+“备份 6_yyyymmddhhss.txt” 格式为文件名的文件

44、。以上文件名中,“数据库名”为第三步的步骤一中选定的数据库的名称;“yyyymm ddhhss”是时间戳,其格式为:“yyyy”指“年”(4 位数值),“mm”指“月”(2 位数值,不足 2 位的补“0”),“dd”指“日”(2 位数值,不足 2 位的补“0”),“hh”指“时”(2 位数值, 不足 2 位的补“0”),“ss”指“分”(2 位数值,不足 2 位的补“0”)。结束语对于一个企业而言,日常运作中发生的各种业务所产生的全部数据,经过计算机不断地日积月累,渐渐成为公司的一种财宝和资本。利用计算机,可以便捷地统计分析部分或全部的数据,通过各种形式的反馈(如图表、表格等),给公司的决策层

45、用于参考,便于为公司的今后决策供应指导和挂念。正基于此,这些数据的价值随着时间的连续正呈现出几何速度的增长。因此我认为,对于数据的备份工作是网管员日常工作中最重要的工作之一。通过这次“数据库维护方案”的创建,我略有感受:1. 经过这么长时间的运用,我认为“数据库维护方案”仍旧存在不足之处,虽说“数据库维护方案”功能很强大,但是它最终的结果是生成一项作业,由“sql serve r 2000 agent”服务定期执行它来完成对数据库的备份工作。这就要求“sql ser ver 2000 agent”服务能够正常地“运行”。从多次安装来看,在 windows 2000系统中“sql server

46、2000 agent”服务能够正常运行,而且能随 windows 2000 的启动自动运行。但是在window 98 系统(包括其次版)中,却不能正常运行。所以说,在 windows 98 系统中即使依照上述步骤成功地创建了“数据库维护方案”,也会由于“sql server 2000 agent”服务无法启动而变得没有任何作用。2. 之所以选择“完全备份”,主要在于,在进行完全备份时,sql server 将.mdf 与其对应的.ldf 文件进行对比,删除一些旧的、不必要的日志,然后将.mdf 和.l df 文件进行合并、压缩后一起存储。 优点是:能最大可能地、完整地保存数据库。 缺点是:存储

47、量随着数据库的增大而增大,存储时间也将随着数据库的增大而延长。3. 在建立“数据库维护方案”过程,各位读者应当尽可能地去使用各种选项、功能, 以便加深对“数据库维护方案”的理解和把握。4. 虽然 internet 上有很多第三方备份软件和工具,但是大多数是共享版。由于担忧学问产权问题、病毒问题和其它问题,所以我没有试用这些第三方软件。这样的话,它们的性能我就不清楚了。或许这些软件的功能格外强大,能够满足更多的、更高的要求。在这里我只是就 windows 2000 和 sql server 2000 自带的“备份”工具和软件进行一个比较。高效维护数据库的关键技巧paul s. randal概览:

48、§治理数据和事务日志文件§清除索引碎片§确保统计数据精确、最新§检测遭到破坏的数据库页§建立有效的备份策略名目数据和日志文件治理索引碎片统计数据损坏检测备份总结在一周之内多次有人向我征求高效维护生产数据库的建议。有时问题来自dba,他们正在实施新的解决方案,期望得到挂念对维护进行精细调整适合其新数据库的特点。但更为常见的状况是:提问的人不是专业 dba,而是由于某种缘由拥有数据库并担当相关责任的人员。我宠爱将这种角色称为“非自愿 dba”。本文重点是为全部非自愿 dba 供应数据库维护最佳实践的入门学问。在 it 世界里,大多数任务和程序都没有

49、一个简洁、通用的解决方案可以高效维护数据库,但却有一些必需受到重视的关键领域。我所关怀的五大重要领域是(没有任何特别的重要性挨次):数据和日志文件治理索引碎片一个未经维护(或维护不良)的数据库可能会在其中的一个或多个领域内引发问题,最终可能导致应用程序性能欠佳,甚至是停机以及丢失数据。在本文中,我将说明这些问题很重要的缘由并向您呈现一些缓解这些问题的简洁方法。我将以 sql server® 2005 为基础进行说明,但我还会着重指出您将会在 sql server 2000别。和马上公布的 sql server 2008中发觉的主要差数据和日志文件治理统计数据损坏检测备份我始终建议在接

50、管数据库时检查的第一个领域涉及到与数据和(事务)日志文件治理相关的设置。具体地说,您应确保:数据和日志文件彼此分开,而且还与其他全部内容相互隔离自动增长已正确配置即时文件初始化已配置自动缩减未启用而且缩减不是任何维护方案的内容当数据和日志文件(抱负状况下应分别位于不同的卷中)与其他任何创建或扩展文件的应用程序共享一个卷时,可能存在文件碎片。在数据文件中,过多的文件碎片可能是导致查询(特别是扫描格外多数据的查询)效果不佳的一个因素。在日志文件中,它可能会对性能产生相当大的影响,尤其是在自动增长设置为需要增加每个文件的大小时,增量很小的情形。日志文件在内部被划分为多个称为“虚拟日志文件”(vlf)

51、 的片段,而且日志文件(我在这里使用单数是由于拥有多个日志文件并没有任何好处,每个数据库只应有一个日志文件)内的碎片越多, vlf 就越多。一个日志文件具有多个(比方说,200 个)vlf 后,与日志有关的操作(如为事务性复制 /回滚而读取日志)、日志备份乃至 sql server 2000 中的触发器(触发器的实现已在 sql server 2005 中更改为行版本框架,而不是事务日志)可能会对性能产生负面影响。调整数据和日志文件大小的最佳做法是创建它们时使用适当的初始大小。对于数据文件,初始大小应考虑短期内向数据库中添加其他数据的可能性。例如,假如数据的初始大小为 50gb,但您知道在接下

52、来的六个月内将再添加 50gb 的数据,那么应创建 100gb 的数据文件,而不是多次将其增大以达到该大小。对于日志文件而言要更简单一些,您需要多考虑一些因素,例如事务大小(长时间运行事务在完成之前无法从日志中清除)以及日志备份频率(由于这将删除日志的非活动部分)。有关具体信息,请参阅我的妻子 kimberly tripp 编写的一篇很受欢迎的博客文章提高事务日志吞吐量的 8 个步骤, 它发表在sql 上。设置一旦完成,应不时监视文件大小,并在每一天的适当时间先行手动增加其大小。为以防万一,应保留自动增长,这样文件即使在发生一些特别大事的状况下仍可以完成所需的增长。反对将文件治理完全保留为自动

53、增长的规律是步长微小的自动增长会导致文件碎片,而且自动增长会是一个耗时的过程,它可能会多次突然停止应用程序的工作。应将自动增长大小设置为一个具体值,而不是一个百分比,以约束执行自动增长(假如发生)所需的时间和空间。例如,您可能期望将一个 100gb 的数据文件的自动增长大小设置为固定值 5gb,而不是(比方说)10%。这意味着无论文件每次变得多大,它均将按 5gb 进行增长,而不是一个持续增长的数量(10gb、11gb、12gb 等)。当事务日志增长时(手动或自动增长),它将始终被初始化为零。数据文件在 sql server 2000 中具有同一默认行为,但从 sql server 2005

54、开头,您可以启用即时文件初始化,它会跳过零初始化文件,因此增长和自动增长会保持同步。全部版本的 sql server 中都供应了这一功能,这一点与正常的观点恰恰相佐。如欲了解具体信息,请在 sql server 2005 或 sql server 2008 的联机丛书索引中输入“即时文件初始化”。最终,应留意不要以任何方式启用缩减。缩减可用于减小数据或日志文件的大小, 但它是一个干扰很大、极耗资源的过程,会导致数据文件中产生大量的规律扫描碎片(具体信息请参见下文),并导致性能欠佳。我更改了 sql server 2005 联机丛书中的缩减条目,加入了一个警告,提示留意此影响。但在特别状况下,

55、允许手动缩减单个数据和日志文件。视频观看 paul randal 演示缩减和自动缩减如何导致数据库发生严峻的碎片问题。自动缩减的后果极为严峻,由于它每 30 分钟就会在背景中启动一次,并会尝试缩减自动缩减数据库选项被设置为 true 的数据库。从某种程度讲,它是一个无法预见的过程,由于它仅缩减拥有 25% 以上可用空间的数据库。自动缩减占用大量资源,会产生碎片并导致性能下降,因此在任何状况下都不是一个好方案。您应始终通过以下方式关闭自动缩减:复制代码alter database mydatabase set auto_shrink off;包含手动数据库缩减命令的定期维护方案几乎会产生同样糟糕的结果。假如您发现您的数据库在维护方案将其缩减后持续增长,缘由在于数据库运行需要该空

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论