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 bit

7,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);接着更新数据文件头和控制文件,表明了数据库整体一致。

转载于:https://blog.51cto.com/cuug123/1280366

详解Oracle介质恢复的内部过程相关推荐

  1. oracle介质恢复的内部过程--推断与参考

    这个是两年前蔡子楠学习oracle总结的东西,不算什么新东西,仅作为个人的一个记录,也欢迎大家一起学习讨论. oracle数据库的介质恢复过程相对非常复杂,oracle毕竟作为一个大系统,设计是相当复 ...

  2. 详解Oracle架构、原理、进程,学会世间再无复杂架构

    详解Oracle架构.原理.进程,学会世间再无复杂架构 学习是一个循序渐进的过程,从面到点.从宏观到微观,逐步渗透,各个击破,对于Oracle, 怎么样从宏观上来理解呢?先来看一个图,这个图取自于教材 ...

  3. 详解Oracle AWR运行日志分析工具

    在Oracle数据库学习和使用中,遇到性能问题,首要的步骤就是导出AWR分析报告,AWR是Oracle的一个脚本工具,通过周期性快照记录下当时的所有运行数据,数据库管理员可以导出其中一部分数据进行分析 ...

  4. Spotify敏捷模式详解三部曲第二篇:研发过程

    本文转自:Scrum 中文网 引言 在本系列文章的第一篇,我们介绍了Spotify的敏捷研发团队,以及它独特的组织架构.Spotify的研发团队采用的是一种非常独特的组织架构,如下图所示: 整个研发组 ...

  5. Android Loader 异步加载详解二:探寻Loader内部机制

    Android Loader 异步加载详解二:探寻Loader内部机制 转载请标明出处:http://blog.csdn.net/zhaoyanjun6/article/details/7025991 ...

  6. Oracle一张表写多个触发器,详解oracle中通过触发器记录每个语句影响总行数

    详解oracle中通过触发器记录每个语句影响总行数 需求产生: 业务系统中,有一步"抽数"流程,就是把一些数据从其它服务器同步到本库的目标表.这个过程有可能 多人同时抽数,互相影响 ...

  7. DDR3内存详解,存储器结构+时序+初始化过程

    转载 DDR3内存详解,存储器结构+时序+初始化过程 2017-06-17 16:10:33 a_chinese_man 阅读数 23423更多 分类专栏: 硬件开发基础 转自:http://www. ...

  8. oracle中调试存储过程,详解Oracle调试存储过程

    详解Oracle调试存储过程 一 调试关键步骤 1.在要调试的存储过程右键,选择编辑以进行调试,截图如下: 2.点击小瓢虫,弹出调试窗口,截图如下: 3.输入7839员工编号,点击确认,进行调试,截图 ...

  9. 建oracle簇表,详解ORACLE簇表、堆表、IOT表、分区表

    详解ORACLE簇表.堆表.IOT表.分区表 簇和簇表 簇其实就是一组表,是一组共享相同数据块的多个表组成.将经常一起使用的表组合在一起成簇可以提高处理效率. 在一个簇中的表就叫做簇表.建立顺序是:簇 ...

最新文章

  1. hibernate ORM related
  2. 【AI视野·今日CV 计算机视觉论文速览 第201期】Wed, 19 May 2021
  3. mysql 5.1 双机热备_mysql5.1双机热备记录
  4. Flutter进阶—点击、拖动和其他手势
  5. NYOJ 部分和问题
  6. 彻底杀除“logo1_.exe”(威金病毒)病毒
  7. 如何使用C++做个简单推箱子游戏
  8. c++ 模糊搜索 正则表达式_c++中正则表达式(regex)
  9. 【调剂】河北大学2022年硕士研究生招生拟接收调剂专业信息
  10. Adobe Premiere Pro CS6打开报错(Oxc000007b)解决办法
  11. ipqc异常处理流程图_品质异常该怎么处理?照这个流程走!
  12. 100个网络基础知识普及,看完你也是半个网络高手哦! 随风
  13. 《商业的本质》读后感
  14. MIMIC-III数据库的应用(一)
  15. docker eclipse打包_【Docker】Maven打包SpringBoot项目成Docker镜像并上传到Harbor仓库(Eclipse、STS、IDEA、Maven通用)...
  16. 我的JavaScript学习笔记续
  17. Unity 音频理解与优化
  18. 如何快速开发安卓app? 用传统的编程工具不行,试试猎码中文开发!
  19. Java作业 大于某个数的最小质数
  20. 2017.2.23工作日志

热门文章

  1. RxSwift 之过滤操作
  2. Windows Azure Platform Introduction (6) Windows Azure应用程序运行环境
  3. 继承2016/4/19
  4. Scala协变与Java泛型
  5. All About Angular 2.0
  6. SQL Server 创建数据库快照
  7. Solaris10之SVM简析
  8. Git之删除本地和远程项目
  9. 发掘数据中的信息 -- 数据探索之描述性统计
  10. Android高级大纲