浅析MS SQL Server数据库恢复技术

来源 :中国教育信息化·高教职教 | 被引量 : 0次 | 上传用户:candle819
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘 要:MS SQL Server用事务(Transaction)来跟踪数据库的一切变化,日志文件则用来记录事务对数据库的所有更新操作,它在数据库恢复技术中起着非常重要的作用。本文将以登记日志文件为技术要点,简要讨论MS SQL Server数据库的安全备份与恢复策略。
  关键词:MS SQL Server 数据库恢复 备份 日志文件
  中图分类号:G250.74 文献标识码:A 文章编号:1673-8454(2008)07-0083-02
  
  一、问题的提出
  
  数据库是高校校园网、电子商务网站、ERP系统等基于网络的大型信息化平台的基础,数据库服务器则掌握着交易记录、商业事务和账号数据等敏感数据以及战略上或专业的信息,一旦遭到攻击或毁坏,将会带来巨大的损失。
  我们知道,事务是MS SQL Server的工作单元,MS SQL Server用事务(Transaction)来跟踪所有数据库的变化。一个事务包含一条或多条作为整体执行的T-SQL语句。[1] 而每个数据库都有自己的事务日志(Transaction Log),即系统表(Syslogs),日志文件则用来记录事务对数据库所有的更新操作,它在数据库恢复技术中起着非常重要的作用。当数据库毁坏后,利用日志文件对已完成的事务进行重做处理,对故障发生时尚未完成的事务进行撤消处理,这样能够以较高的效率将数据库恢复到故障前某一时刻的正确状态,且能保证较高的安全性。然而目前,很多数据库服务器都是和WEB服务器隔离开的,管理员几乎很少查看数据库日志文件。
  为了确保被毁坏数据库中大部分信息的恢复,我们必须重视数据库的管理与维护工作,定期进行数据库备份是防止系统发生故障最稳妥的方法。数据库的安全备份/恢复策略固然有多种,但MS SQL Server数据库系统一旦崩溃,其原先的备份数据是很难恢复的,因为MS SQL Server不像其他数据库可以直接拷贝数据文件,其恢复都是靠日志文件来完成,所以,日志文件丢失是一件非常危险的事情,很有可能导致数据库彻底毁坏。[2]
  
  二、MS SQL Server的安全备份及恢复策略
  
  下面,我们将以MS SQL Server为例,讨论利用日志文件进行数据库备份与恢复的技术要点。
  1.利用无活动事务的日志备份数据库
  正常方式下,我们要备份一个数据库,首先要先将该数据库从运行的数据服务器中断开,或者停掉整个数据库服务器,然后复制文件。
  卸下数据库的命令:sp_detach_db 数据库名
  连接数据库的命令:sp_attach_db或者sp_attach_ single_file_db
  假设数据库为mydb,其数据文件为mydb_data.mdf,日志文件为mydb_log.ldf。
  则备份、恢复该数据库的命令为:
  卸下数据库:sp_detach_db ′mydb′
  连接数据库:
  sp_attach_db ′mydb′,′C:\Program Files\Microsoft SQL Server\MSSQL\Data\ mydb_data.mdf′,′C:\Program Files\ Microsoft SQL Server\MSSQL\Data\ mydb_log.ldf′
  sp_attach_single_file_db ′mydb′,′C:\Program Files\ Microsoft SQL Server\MSSQL\Data\mydb_data.mdf’
  2.利用包含活动事务的日志恢复数据库
  由于种种原因,我们的系统中可能仅仅保留了备份的mdf文件,如果该mdf文件是当前数据库产生的,那么使用sp_attach_db或者sp_attach_single_file_db可以恢复数据库。[3] 但如果数据库文件是从其他计算机上复制过来的,当含有活动事务的日志丢失时,上述方法也许就行不通了,我们会看到类似下面的错误信息:
  “服务器:消息 1517,级别 16,状态 2,行 1
  未能打开新数据库′mydb′;CREATE DATABASE将终止;设备激活错误;物理文件名′d:\mydb_log.ldf′可能有误”。
  对于这种情况,我们可采用如下方法:
  (1)使用默认方式在SQL Server Enterprise Manager中建立一个供恢复使用的数据库(如mydb);
  (2)停掉数据库服务器;
  (3)将刚才生成的数据库的日志文件mydb_log.ldf删除,用要恢复的数据库mdf文件覆盖刚才生成的数据库数据文件mydb_data.mdf;
  (4)启动数据库服务器,此时会看到数据库mydb的状态为“置疑”,这时不能对此数据库进行任何操作;
  (5)设置数据库,允许直接操作系统表。此操作可以在SQL Server Enterprise Manager中选择数据库服务器,即用鼠标右键选择“属性”,在“服务器设置”页面中将“允许对系统目录直接修改”一项选中,也可以使用如下语句来实现:
  use master
  go
  sp_configure ′allow updates′,1
  go
  reconfigure with override
  go
  (6)设置mydb为紧急修复模式:update sysdatabase set status=-32768 where dbid=DB_ID(′mydb′),此时可以在SQL Server Enterprise Manager中看到该数据库处于“只读\置疑\脱机\紧急模式”,但仅仅能够看到数据库中的系统表;
  (7)下面执行真正的恢复操作,重建数据库日志文件:
  dbcc rebuild_log(′mydb′,′C:\Program Files\Microsoft SQL Server\MSSQL\Data\mydb_log.ldf′),
  执行过程中如果遇到下列提示信息:
  “服务器:消息2630,级别16,状态1,行1,未能排它地锁定数据库以执行该操作,DBCC执行完毕。如果DBCC输出了错误信息,请与系统管理员联系”,说明其它程序正在使用该数据库,如果刚才在第6步中使用SQL Server Enterprise Manager打开了mydb库的系统表,那么退出SQL Server Enterprise Manager就可以了。
  (8)验证数据库一致性
  dbcc checkdb(′mydb′)
  一般执行结果如下:
  “CHECKDB 发现了0个分配错误和0个一致性错误(在数据库 ′mydb′ 中);DBCC 执行完毕;如果 DBCC 输出了错误信息,请与系统管理员联系”;
  (9)设置数据库为正常状态
  sp_dboption ′mydb′,′dbo use only′,′false′
  如果没有出错,那么现在就可以正常使用恢复后的数据库了;
  (10)最后,将步骤5中设置的“允许对系统目录直接修改”一项恢复。因为平时直接操作系统表是一件比较危险的事情。当然,我们可以在SQL Server Enterprise Manager中恢复,也可以使用如下语句完成:
  sp_configure ′allow updates′,0
  go
  reconfigure with override
  go
  
  三、后记
  
  利用日志文件恢复数据库的前提是系统中保留着数据库的备份,而很多用户难以养成定期手动备份的习惯,建议使用MS SQL Server的“自动备份数据库”功能,具体操作如下:
  打开企业管理器,在控制台根目录中依次打开Microsoft SQL Server→SQL Server组,双击打开服务器;在工具菜单选择“数据库维护计划器”,点击“下一步”选择要进行自动备份的数据,继续点击“下一步”更新数据优化信息并检查数据完整性。再点击“下一步”指定数据库维护计划(默认的是1周备份一次),选择“每天备份”后点击“确定”。接着,可以在E盘新建一个目录(如:E:\databak),选择“使用此目录”,并依据具体要求确定删除早于多少天前的备份(一般设定为4-7天)。最后,点击“下一步”指定事务日志备份计划,并维护计划的历史记录(这里最好用默认的选项)。系统此时很可能会提示“SQL Server Agent服务未启动”,需要完成计划设定并打开状态栏中的SQL绿色图标,在服务中选择SQL Server Agent,点击“运行”,选择“当启动OS时自动启动服务”。这时,数据库计划已经成功地运行了,它将按照上面的设置进行自动备份。
  数据库在使用一段时间后,其日志也将日益庞大。对于新建的数据库,日志文件的大小一般应为数据库大小的30%,而日志的大小也取决于数据库修改的频繁程度,即依赖于用户如何操作数据库。[4] 我们可以为Server添加一个作业,让它定期运行,为数据库日志文件“减肥”。压缩日志的思想是删除非活动记录,从而减少日志文件所占用的物理空间。当压缩日志时,首先应将旧记录标记为非活动状态,然后将带有非活动标记的记录彻底删除。压缩工作应尽量选在系统不是非常繁忙的时段进行,否则有可能影响数据库性能。
  
  参考文献:
  [1]程云志等.数据库原理与SQL Server2005应用教程[M].北京:机械工业出版社,2006.
  [2]王征,李家兴等. SQL Server2005实用教程[M].北京:清华大学出版社,2006.
  [3]朱虹,史凌云,张勇.多级安全数据库系统推理问题研究[J].计算机工程与应用,2004(13):179-183.
  [4]李黎民,秦小麟.安全数据库概述与前瞻[J].计算机系统应用,2005(5):91-93.
其他文献
摘要:信息技术背景下,对计算机支持的协作学习(简称CSCL)的研究受到广泛关注,由于该研究的新兴性,关于CSCL在许多方面的应用研究尚不成熟,比如在网络课程教学CSCL的应用策略等。本文以生物教学论网络课程的教学为例,探索CSCL在教学中的交互协作机制,讨论CSCL在教学中的应用方法。  关键词:CSCL 网络课程教学 应用策略  中图分类号:G250.73 文献标识码:B 文章编号:1673-8
摘 要:在信息化教育阶段,网络作为先进的学习资源媒体工具,不能只是教材的翻版,必须对学习者的学习行为加以控制。基于网络的资源还应承担起激发学习者高层次的思考,实现个性化学习的功能。即关于媒体资源的研究要注重媒体对控制学习过程信息的设计和使用。因此,仅从资源的系统化、结构化的角度考虑资源的建设已远远不能满足教和学的需求,资源的建设还必须考虑到学习者的个性化特点与过程的结合。本文以网络主题学习资源建设
宝乐,3岁,聪明伶俐、性格乖巧,非常讨人喜欢。他从小饮食细到极致,喜欢吃肉,极少吃蔬菜。因此,宝乐一入园,就在三餐上表现出了明显的不适应。入园的前3天,每天两奶瓶从家带的五谷糊糊成了宝乐在园的主要食物,无论老师怎样劝说,他都不肯尝一尝幼儿园里的饭菜,这让我看在眼里急在心里!  一天,园所的晚餐提供的是什锦米饭(火腿肠丁、胡萝卜丁、青椒丁、鸡蛋炒米饭),红、橙、黄、绿、白在一起,又香又好看。宝乐用勺
摘 要:一个生动的多媒体课件离不开音视频媒体。音视频媒体的加入不但可以渲染气氛、吸引注意力、强化效果,而且可以起到提高学生学习积极性,进而提高教学效果的作用。Director 不但支持多种音视频文件的播放,而且可以实现其他多媒体开发软件不能实现的特殊效果。本文介绍了在Director中播放音视频文件使用的一些高级技巧。  关键词:声音 视频 音量 课件 Director Lingo 程序 控制  
一  郭少霞,人称郭姐,典型的不吃亏,抽烟喝酒—个不落,性格火辣烈性,其实外强中干。老伴是做警察的,出事前是派出所所长,把郭姐疼在手心上,知道她争强好胜,总劝她,“麻线穿针眼——过得去就行”。老伴是突发心脏病在岗位上走的,算是工伤,所里给了郭姐一笔抚恤金。人走了,耳畔却时时响起老伴的叮嘱,细细碎碎的,是那些她熟悉的话。以前老伴叮嘱她多一分,她就觉得他的男子气少一分,然而如今再想起这些话,竟比耳鬓厮
尽管已经有了强健的IT基础架构,但在上海海事大学信息化办公室张明主任看来,这只是为后续的数字化校园建设打好了基础。    信息化背后的潜在风险    作为一所以航运为特色,具有工学、理学、管理学、经济学、法学和文学等学科门类的多科性大学,上海海事大学很早就进行了信息化建设的相关部署。特别是自2005年学校信息化办公室成立以来,上海海事大学的数字化校园步伐更是进一步加快。截至目前,上海海事大学已经建
自控力,即自我控制能力,是指通过对身心活动的监控和调节,在没有外界监督的情况下,自觉抑制冲动,抵制诱惑,忍受挫折,遵守规则,使行为符合社会和自身期望的能力。幼儿期是自我控制能力发展的关键期,幼儿期自控的发展与其未来的发展和成就具有密切的相关性。  中国幼儿的自我控制能力发展不容乐观。有研究者曾对中澳儿童进行了对比研究,发现我国幼儿的延迟满足水平低于澳大利亚儿童。相比之下,中国幼儿对行为的约束更倾向
三年级开始由写话转入习作阶段,学生普遍感到习作很难,提起笔来却不知从何下手。降低训练的难度,激发学生兴趣,是起步习作教学的重点。根据学生的思维特点和心理发展,教师可以依托教材,挖掘文本中的训练点,有效指导学生练笔,把阅读与习作训练有机结合起来,读中悟写,读中学写。  一、借精彩段落仿写  教育家克鲁普斯卡娅说:“模仿对于儿童,正如独立创造对于成人那样同等重要。” 因此,起步习作教学可以遵循“由仿到
摘 要:Acronis True Image软件具有强大的系统备份和恢复功能,它的出现结束了专业服务器系统不能被克隆的历史,使得服务器的管理和维护变得十分轻松。它能有效地抵御由病毒的侵害所造成的系统瘫痪,还能为软件之间的冲突等问题找到解决方案。  关键词:服务器 维护 备份  中图分类号:TP368.5 文献标识码:B 文章编号:1673-8454(2008)05-0030-02    引言   
从幼儿的角度,这个案例给我们两点启示。  启示一:幼儿的歌舞表演能力是可以自我成长的  第一,在幼儿的游戏世界里,任何能敲打出声音来的日常物品,都能假想成为演奏的乐器,幼儿的装扮性表演随时会产生。  第二,只要有熟悉的音乐,幼儿就能自发地根据音乐的旋律,敲出适宜的节奏和创编合拍的动作。幼儿对音乐的熟悉过程不是成人反复训练的结果,而是他们耳边经常听到并逐渐耳熟能详的,因为游戏中表演的那些歌曲显然都不