admin 管理员组文章数量: 887021
2024年1月19日发(作者:web服务器搭建网站论文)
/ SQL Server 2005数据库备份与恢复研究 向 猛 (湖南商务职业技术学院实训部,长沙410205) 摘要:如何在出现各种软硬件故障及人为误操作后快速有效地恢复数据库系统中的数据.为保证 企业重要数据的安全,应该如何为重要数据库设置备份与恢复策略。详细分析SQL Server 2005数据库管理系统中备份/恢复的实现技术。 关键词:SQL Server;备份/恢复;事务日志 0 引言 1.1简单恢复模式 随着企业信息化建设的深入.越来越多的企业积 在简单恢复模式下.数据库引擎最低限度地记录 累了大量的数据。数据成为企业赖以生存的资产。然 对数据库的大多数操作 同时.在事务日志管理方式上 而.如何保证重要数据的在遭遇故障后及时恢复.是很 也很“简单”.事务日志文件中所有已提交且CheckPoint 多企业信息管理员或DBA面临的问题 本文详细讨论 的事务的日志信息将自动从事务日志文件中清除(这 了微软SQL Servet 2005数据库备份与恢复策略实现 个过程称为事务13志截断) 因此,在该模式下,事务日 技术。 志不需要人工管理.由系统自动截断日志 正是由于事 务日志在还没有备份的情况下就能够被系统自动截断 1 数据库恢复模式 (删除)了,所以,在该恢复模式下,不能进行事务日志 在实际的生产环境中.用户应该为数据库选择何 备份,即便能够进行事务日志备份.备份出来的日志信 种恢复模式?基于所选择的恢复模式为数据库制定何 息也是不完整的.没有任何的意义。在SQL Server 2005 种备份/恢复策略?其答案在于用户所能承受的数据丢 中.能够在该模式下使用的备份类型只能是完整数据 失的数量。如果数据非常重要,企业不能承受哪怕几分 库备份和差异数据库备份 而使用完整数据库备份或 钟的数据丢失.那么相应数据库就需要选择保护能力 差异备份是无法将数据库还原到故障点或某个指定的 强的恢复模式.并基于所选择的恢复模式详细设计备 时间点的。因此。在实际的生产环境中.为了保证数据 份/J恢复策略.并基于该备份/恢复策略不断的进行预 的安全性.简单恢复模式很少使用。 演.以便数据的安全性万无一失。在SQL Senrer 2005 需要注意的是.虽然在简单恢复模式下.系统会自 中,为数据库提供了三种恢复模式:Simple(简单)、Full 动定期清除日志.但这并不意味着事务日志文件不会 (完整)、Bulk—Logged(大容量13志)。数据库恢复模式的 增长。例如,当执行一个批量插入事务时,SQL Server 选择是备份/恢复策略中首先需要考虑的事情.为数据 2005会将该事务产生的数据改变都记录在日志中.在 库所选的恢复模式决定了SQL Server 2005在数据库 极端情况下.事务13志还是非常可观的 上如何使用事务日志、如何在事务日志中记录对数据 1.2完整恢复模式 库执行的各种操作以及如何截断事务日志等 在完整恢复模式下.对数据库的任何修改都记录 到事务13志文件上来给予数据最大程度的保护 在事 收稿日期:2012—03—02 修稿日期:2012—03—22 作者简介:向猛(1979一),男,本科,在职研究生,高级工程师,研究方向为DB2数据库、SQL Server数据库、网络工程、信息安全等 现代计算机2012.03
实践与经验 务日志的管理上.其在CheckPoint时不会截断日志.只 有在对事务日志进行备份后才会将MinLSN向后推并 截断日志 即.已提交并且已经CheckPoint的事务在日 志备份后,才从日志文件中删除。由于数据库不会自动 截断事务日志.如果不进行事务日志备份的话.会导致 事务日志文件持续增长,直到磁盘空间耗尽为止 所 以。在这种恢复模式下.需要手工对事务日志进行管 理,管理的方式只能是通过备份事务日志或者将恢复 2.2差异数据库备份 差异数据库备份是备份最近一次完整数据库备份 以来更改的数据.其与最近一次完整备份紧密相连.不 管两者之间有多少次日志备份和差异备份.差异备份 都是以最近一次完整备份作为基准点。 然而.差异备份如果不注意也会导致一些问题 例 如.在一个事先安排好的备份计划里.如果在完整备份 和差异备份之间的某个时间点.需要生产数据库的数 模式切换至简单模式来清除事务日志 在完整恢复模 式下,支持所有三种备份类型。即.完整数据库备份、差 异数据库备份以及事务日志备份 一般情况下.在该恢 复模式下的备份,恢复策略是:首先进行完整数据库备 份,将该完整备份作为其他备份类型的基准点 然后再 频繁地做事务日志备份,如果事务日志备份过多.感觉 以后恢复起来很繁琐.可以在中间适当地做一些差异 备份,以便简化以后恢复步骤 1.3大容量日志恢复模式 大容量日志恢复模式在很多地方和完整恢复模式 相同。但由于在完整恢复模式下.对数据库的每一项修 改都会记录在日志中 而对于某些大量数据的导人导 出操作.无疑会在日志中留下大量记录。很多情况下, 并不需要将这些信息记录在日志中 而在大容量日志 恢复模式下,诸如Select Imo、Bulk Insert、索引的创建) 等批量操作将会被最少日志记录.使进行大批量操作 的数据库减少很大的日志空间 2 数据库备份 2.1完整数据库备份 完整数据库备份将备份数据库中所有数据文件. 备份的逻辑对象包括所有用户数据以及所有数据库对 象。但是。需要注意的是。完整数据库备份并不备份事 务日志(实际上,完整数据库备份也包含少量日志,用 于同步 完整备份会记录备份开始时的MinLSN号.结 束备份时的LSN号.将这个区间的日志进行备份,在恢 复时应用到被恢复的数据库)。不会导致事务日志截 断.因而不能减少事务日志文件的大小。 不管恢复模式是哪一种.所有的备份类型都要求 有一个全备份.特别是对于事务日志备份和差异备份, 如果没有全备份的话,这两种备份类型将无法进行恢 复 o 现代计算机2012.03 据进行测试.经常是简单地对数据库做一个完整备份. 将其用于测试 但这在不经意间导致了备份计划中的 差异备份被打断.它不在以用户预期的完整备份为基 准.而是以刚才临时创建的完整备份为基准。如果用户 之后将该用于测试的全备份删除后.则备份计划中的 差异备份将变得毫无意义 因为差异备份基于了该已 经删除的全备份。值得庆幸的是,在SQL Server 2005 中,进出完整备份的时候,提供了c0py—only选项,使用 copy—only选项进行的完整备份不会打乱原先的备份 计划,即差异备份不会以使用copv—only选项的完整备 份作为基准.避免了上述情况的发生 2.3事务日志备份 在完全恢复模式或者大容量日志恢复模式下.事 务日志备份不仅仅是恢复的需要.同时也是手工管理 事务日志文件的一种方式。在上面两种恢复模式下,如 果从不进行事务日志备份的话.事务日志将会持续增 长.直至耗完事务日志所在磁盘空间 事务日志备份只能与完整恢复模式和大容量日志 恢复模式一起使用。在简单恢复模式下,事务日志会被 数据库引擎自动截断.事务日志备份中的日志可能不 连续,而不连续的事务日志备份没有意义.因为基于日 志的恢复要求日志是连续的 在完全恢复模式或者大容量日志恢复模式下.可 以使用事务日志备份将数据库恢复到特定的时间点 (例如删除某个重要表的前一时刻)或恢复到故障点(例 如果能进行尾日志备份的话)。恢复事务日志备份时, SQL Server 2005重做事务日志中记录的所有更改。当 还原到某个事务日志备份的最后时.数据库便达到开 始执行该日志备份操作时刻完全相同的状态。如果在 还原时使用了默认的Recovery选项,则SQL Server 2005将回滚备份操作开始时尚未完成的所有事务。 一般情况下.事务日志备份比数据库备份使用的
资源少 在一个完整数据库备份后.可以经常执行事务 日志备份将减少丢失数据的危险 3数据库恢复 不管何种数据库管理系统(SQL Server、Oracle、 DB2)其数据库恢复的原理都大同小异.一般来说.从 备份恢复数据需要经历如下三个步骤: (1)复制数据阶段 从完整备份和差异备份中将数据.索引页和日志 复制到被恢复数据库的文件中 (2)Redo(Roll Forward)阶段 将记录在日志中的事务应用到从备份中复制过来 的数据库 使数据库Roll Forward到指定的时间点。这 个阶段完成后,数据库还处于不可使用阶段。在SQL Server 2005中。以上两个步骤统称为还原(Restore); (3)Undo(Roll Back)阶段 将任何未提交的事务回滚,保证数据库的一致性。 在SQL Server 2005中Recovery选项代表的正是这个 Roll Back过程 这个阶段过后.数据库处于可用状态。 任何后续备份将不能接着应用到当前数据库 在实际生产环境中.经常采用基于完整恢复模式 下的一个完整数据库备份+N个连续的事务日志备份 的策略 这里需要强调的是事务日志备份的连续性.如 果中间的某个事务日志备份O2损坏或被删除.则数据 库只能恢复到事务日志备份01的即时点 而不能跳过 事务日志备份o2.直接恢复到事务日志备份O3时的状 态 数据库上的每个动作都会被安排一个Log Sequ— ence Number(LSN)。如果需要还原到指定的时间点,需 要有持续的LSN记录 如果要恢复到故障点.就需要看数据库的当前日 志是否完整.如果是完整的.可以做一个当前日志的备 份(尾日志备份04),然后按照先还原完整备份,再还原 日志备份最后还原尾日志备份的顺序进行还原 这里 需要注意的是.对于非最后一个事务日志备份.在还原 事务日志时.需要使用NORecovery选项.指定在还原 结束后不进行未提交事务的回滚.以便后续的事务日 志还原能够接着进行.而在最后一个事务日志还原时. 需要使用Recovery选项来回滚未提交的事务.让恢复 出来的数据库处于联机状态 基于事务日志的备份也可以根据实际需要恢复到 某个日志备份中间的时刻。称为时点恢复 例如在还原 数据库完整备份后.恢复数据库在完全备份和日志备 份O1中间的某个时刻.这就是时点恢复。这里的时点 必须是合法的(看日志备份的时间),而不能超出日志 备份的时间序列.否则系统不会执行。比如现在只有日 志备份01.其时刻为12:1 1,假如我们指定恢复到12: 12.那么这样的时点是非法的 4 备份与恢复案例 下面示例展示了在实际生产环境中常用的一个完 整数据库备份+N个差异数据库备份+M个事务日志备 份的备份与恢复策略 某省一所近两万学生规模的本科院校.其教务管 理系统是该校数据量最大.功能最为复杂的数据库应 用系统。该系统管理负责全校的课程安排、教师评测、 学生管理、学籍管理、网上选课、各种考试管理等一些 列功能 该系统后台数据库采用SQL Server 2005 En. terprise Edition 服务器采用IBM X3690X5机架式服务 器,服务器使用RIAD5磁盘阵列(由于某种原因该服 务器没有接入UPS) SQL Server实例中教务管理数据 库是为Jwdb,数据库大小约为9G,事务日志文件约为 1.2G 每天的数据增长量约为3M.数据库恢复模式为 完整恢复模式.该系统的管理员为数据库设置的备份 策略为:每周周一凌晨2:o0做完整数据库备份。在每天 较空闲时间10:30.12:30.17:30,20:30分别做事务日志 备份。同时在每天的23:30做差异备份。整个备份策略 使用SQL Server 2005自有的维护计划、作业、计划等 功能自动完成.并且通过使用一些T—SQL脚本实现了 异地备份 某一周的星期四下午15:10分左右学校所在区域 发生大面积停电事故。供电恢复正常后.系统管理员便 发现教务管理系统不能连接了 经过到中心机房的查 看,发现IBM服务器启动字符界面提示:RAID rebuild. ing。磁盘阵列中的一块磁盘显示黄色警示灯,只有一 个光标在不停闪烁。由于对RAID5磁盘阵列工作原理 不了解.该管理员没有让重构完成.前前后后硬重启了 好几次。最终确定服务器无法进入系统。分管教学工作 的副院长接到报告后.非常重视。立马组织学校相关技 术人员及熟悉SQL Server数据库的教师进行诊断 最 后确定磁盘阵列中一块磁盘物理损坏.并且没有等到 现代计算机201 2.03
实践与经验 服务器阵列自动重建完成就非法重启服务器多次.进 而导致操作系统崩溃 庆幸的是.该数据库有较完善的 备份策略 大家一致认为.恢复到当天12:30状态是没 含的信息无法恢复。例如,原先数据库实例中的登录 名、用户、权限设置、维护计划、作业等信息全部丢失, 不得不对照相应的配置文档以及备份策略一一重新设 置。 有问题的。但由于服务器使用了磁盘阵列技术.且操作 系统已经崩溃.无法进行尾日志的备份 所以在这种情 况下无法恢复到故障点(即无法恢复到15:10分的状 态)。整个系统恢复情况如下: ⑧完成服务器的其他配置,例如应用服务器(IIS) 的设置、Web站点的调试、防火墙公网地址到私网地址 的映射等 该教务管理系统整个恢复过程大约花费了两个小 时.真正用于数据库恢复的不到45分钟.大部分时间 ①决定临时将系统切换到一台教学用的.比较空 闲的DELL服务器上 在该服务器上进行系统优化.配 置合适的IP地址等 全新安装相同版本的SQL Server 2005数据库 花费在其他配置上,例如SQL SeI'Ver 2005登录名、权 限、维护计划、作业等配置上.以及操作系统层面的设 置。从上面教务管理数据库的恢复过程中可以清楚地 看到。对于系统数据库也要进行及时的备份.需要引起 足够的重视 ②从备份服务器上拷贝所需要的.最近一周的相 关备份文件 ③使用这一周星期一的完整数据库备份进行还原 (Restore),在进行还原时,使用了NOReeovcry选项.以 便于后续的差异备份还原和事务El志还原得以继续进 行。 5 结语 数据是企业的生命.需要根据具体情况制定完备 的备份/恢复策略.并根据制定的备份/恢复策略不断的 演习,以确保企业数据万无一失。 参考文献 ④使用星期三所做的差异备份进行还原.为了后 续的操作,同样使用了NORecovery选项 ⑤使用星期四10:30所做的事务日志备份进行 Restore.使用NOReeovery选项 ⑥使用星期四12:00所做的事务日志备份进行 Restore,同时指定了Recoverv选项.在还原结束后立即 对未提交的事务进行Undo操作(Recovery).确保数据 库处于一致状态 至此数据库恢复恢复到了当前12:30 分的状态,数据库变成联机状态.对用户可用 『1]Kalen Delaney.Inside Microsoft SQL Server 2005:The Stor— age Engine[M].US:Microsoft Press,2006 【2】吴瑛.SQL Server 2000数据备份与恢复策略探讨[J】.湘潭 师范学院学报(自然科学版)。2009(3):35 38 『31胡明政,何晓龙.浅析SQL Server数据库备份策略的设计 【Jj.信息科技,2008(5):210—211 ⑦由于在备份策略中没有包含对系统数据库113as. ter和msdb数据库的备份。所以这两个系统数据库包 Research on Backup and Recovery of SQL Server 2005 Database XIANG Meng (Department of Technical Training,Hunan Business Institute of Vocational,Changsha 410205) Abstract:For how to recovery database system S important data quickly and effectively after hardware failure or software failure occurred,how to choose backup and recovery strategy for important databases,analyses backup and recovery of technology of SQL Server 2005 in details. Keywords:SQL Server;Backup and Recovery;Transaction Log 现代计算机2012.03
版权声明:本文标题:SQL Server 2005数据库备份与恢复研究 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.freenas.com.cn/jishu/1705619121h492668.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论