专家在线:全面介绍恢复Oracle数据库_Oracle数据库_黑客防线网安服务器维护基地--Powered by WWW.RONGSEN.COM.CN

专家在线:全面介绍恢复Oracle数据库

作者:黑客防线网安Oracle维护基地 来源:黑客防线网安Oracle维护基地 浏览次数:0

黑客防线网安网讯:  这是截取自Damir Bersinic 和John Watson合着的《Oracle Database 10g OCP Certification All-In-One Exam Guide》书中第20章,Oracle出版社出版copyright 2006 ,McGraw-Hill分公司。 ...

  这是截取自Damir Bersinic 和John Watson合着的《Oracle Database 10g OCP Certification All-In-One Exam Guide》书中第20章Oracle出版社出版copyright 2006 McGraw-Hill分公司

  在这章中你将会学到的是:

用控制文件挽回损失
用redo日志文件挽回损失
用系统关键数据文件挽回损失
用非系统关键数据文件挽回损失

  要损坏Oracle数据是不可能的环境恢复的机制保证了这一点,就是使用redo和undo来将数据库返回到环境失败之前的一个一致性状态中去。然而,在媒介失败之后丢失数据是可能的——如果数据库管理员没有予以适当的警惕。

  预先防范是简单的:在归档日志模式下运行数据库;多路传送控制文件,在线日志文件,以及文档日志文件;支持数据文件和文档日志文件。在媒介失败之后,备份和文档日志可以用于恢复数据库到失败前的点,不丢失任意一行已经被提交的数据。但是,尽管环境恢复的确是自动化的,不可避免的——媒介恢复是一个手工的过程。本章内容将会讲述基本的恢复技术。可以用于更加复杂问题的比较高级的技术,将会在下章中涉及。

  不可避免性——媒介的恢复是个手工的过程。本章讨论的是基本的恢复技术。更高级的,可以应用于更加复杂问题的技术,将会在稍后的章节中继续讨论。

  恢复结构和处理过程

  在媒介失败之后,有不同的技术用于恢复,根据哪个文件被损坏的情况。数据库由3种文件类型组成:控制文件、在线redo日志文件,以及数据文件。恢复控制文件和在线redo日志文件的过程是一个繁琐的过程,它们是通过多路传送的。恢复一个或者多个数据文件的过程是比较复杂的,但是很直接。损坏的控制文件可以通过多路传送的拷贝或者用CREATE CONTROLFILE命令重新创建的控制文件来进行恢复。在极端的情况下,它可以从备份中重新存储,但是这一点在媒介失败之后是从来不需要的,如果你遵循的是一个合适的多路策略。损坏的在线redo文件也可以被重新生成,Oracle提供了一条ALTER DATABASE CLEAR LOGFILE GROUP #(#是损坏成员的组的号码)命令,它可以删除并且重新创建日志文件组的成员。如果数据库运行的是文档日志模式(也应该是这样的),日志文件组必须在Oracle允许执行清楚日志文件命令之前进行归档。这是因为,清除一个没有归档的日志文件组,就意味着文档日志流会丢失一个日志文件,因此恢复就是不可能的了。这样的命令还可以有一些变化,ALTER DATABASE CLEAR UNARCHIVED LOGFILE GROUP #,它可以删除并重新创建日志文件,即使是它没有成功地归档,但是在执行了这条命令之后,它绝对就是执行整个数据库备份的一个至关重要的部分。

  一个受到损坏的日志文件需要使用备份和文档日志。在媒介失败导致日志文件的损坏之后,有两种选择用于恢复:完全恢复,意思是不丢失数据;还有不完全恢复,这时你通过在它完成之前停止恢复过程故意丢失一部分工作。不完全恢复是一个高级的程序,将会在第27章中讲述。完全恢复过程有两个阶段。首先,被损坏的文件必须从备份中重新存储。第二个,重新存储的文件必须被恢复,通过使用文档日志中的redo信息来把它及时地向前推进,直到它与数据库的其它部分同步。

  测验贴士:在Oracle环境中,“重新存储”的意思是用备份替换掉一个损坏或者丢失的文件;“恢复”的意思是通过使用文档日志使文件与数据库的其它部分同步。

  因为在线redo日志从来没有被RMAN备份过,那么RMAN就不能用来恢复损坏;修理由于媒介失败导致的在线日志文件损坏可以通过SQL*Plus完成,或者是通过数据库控制。控制文件和数据文件都可以通过RMAN来重新存储或者恢复;实际上,如果你把它们备份到备份集中去,RMAN就是你惟一的选项。

  要打开一个数据库,所有的控制文件拷贝,至少是每个在线日志文件组中的一个文件,还有所有的在线日志文件,都必须要显示出来并且同步。如果,在启动过程中,SMON发现情况不对劲,启动就无法完成。如果一个控制文件拷贝损坏了或者丢失了,启动就用NOMOUNT模式来终止。一条描述哪个(或者哪些)拷贝被损坏了的消息就会发送给警报日志。假设控制文件是好的,SMON就继续打开数据库。在这个过程中,它检查所有在线数据文件的头。如果头有丢失或者损坏,就会写适当的错误消息给警报日志,数据库会继续保持准备的模式。如果所有的在线文件都显示出来,并且没有损坏,但是其中的一个或者多个没有同步,SMON会尝试通过使用在线redo日志来对它们进行同步。这就是环境恢复的过程,在第18章有详细介绍,这个过程是自动进行的。如果所需的在线日志找不到,那么数据库就无法打开。如果一个或者多个数据文件从备份中重新存储了,那么它们可能会非常过时,在线redo日志也无法走那么远的时间去恢复它们:这是你就必须使用文档日志文件来恢复了,这是一个必须手工启动的过程——从SQL*Plus中,如果你用的是操作系统的命令备份的话,或者使用RMAN,如果(是Oracle强烈推荐的)你是用RMAN来提交备份的。

  如果媒介损坏发生在数据库打开的时候,那么影响的范围就基于有哪些文件受到影响。任何控制文件拷贝的损坏都会导致数据库环境立即终止。如果受到损坏的数据文件是SYSTEM表空间或者活动的undo表空间,那么影响是一样的。但是对任何在线日志的损坏都不会导致环境的终止,只要还有部分日志文件组存在的话。实际上,环境会继续工作,你的终端用户也甚至不会注意到。但是错误消息会写到警报日志中去,这种情况也需要立即纠正;这样的纠正能够并且应该是在线的,当人们继续工作的时候。

    黑客防线网安服务器维护方案本篇连接:http://www.rongsen.com.cn/show-12520-1.html
网站维护教程更新时间:2012-03-23 00:42:06  【打印此页】  【关闭
我要申请本站N点 | 黑客防线官网 |  
专业服务器维护及网站维护手工安全搭建环境,网站安全加固服务。黑客防线网安服务器维护基地招商进行中!QQ:29769479

footer  footer  footer  footer