您的位置:首页 > 数据库 > Oracle

详解Oracle介质恢复的内部过程

2013-08-22 10:28 225 查看
Oracle数据库的介质恢复过程相对非常复杂,Oracle毕竟作为一个大系统,设计是相当复杂和庞大的。鄙人结合对controlfile,redo log,datafile等文件的dump内容进行分析,试图深入的了解Oracle的介质恢复过程。虽不能从正向了解内部工作机制,但是从逆向推断也能做个大致了解,以此增强对Oracle的使用信心吧。更多请查询cuug官网
从这里开始吧:1,获取media-recovery-start SCN.检查所有数据文件头,选择最小的checkpoint SCN值作为start SCN。假如获取到的checkpoint SCN值在数据文件的offline的SCN范围内,则采用offline-end的SCN。2,checkpoint structure检查thread启动数量media-recovery SCN中的checkpoint structure检查在该SCN点有几个thread线程启动了。3,分配log buffer为第二步中的每个启动的thread分配log buffer。4,打开log文件--如果log文件在线,系统将会自动打开;--如果已经归档,将会提示管理员输入log文件名称。5,分配独占型media recovery lock为每个需要执行media recovery的数据文件分配一个excusive(独占)media recovery lock。6,对每个数据文件设置fuzzy bit7,checkpoint bitvec 决定了初始启动的thread。8,thread线程读取相应的redo,并应用于数据库。9,Media recovery发生检查点:--应用redo文件过程中,需要转换redo文件,每当转换时都会发生Media Recovery checkpoints。--当数据文件的STOP SCN达到时,也会发生Media Recovery checkpoints,数据文件头的checkpoint也会被推进到该值。10,完成media checkpoint所有的thread完成其对应的redo日志应用,达到数据文件的有限STOP SCN值,完成了media recovery;media recovery fuzzy bit被清除,或者叫做重置为(0x0000.00000000 day/month/year hh24:mi:ss);接着更新数据文件头和控制文件,表明了数据库整体一致。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: