详解Oracle介质恢复的内部过程
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介质恢复的内部过程相关推荐
- oracle介质恢复的内部过程--推断与参考
这个是两年前蔡子楠学习oracle总结的东西,不算什么新东西,仅作为个人的一个记录,也欢迎大家一起学习讨论. oracle数据库的介质恢复过程相对非常复杂,oracle毕竟作为一个大系统,设计是相当复 ...
- 详解Oracle架构、原理、进程,学会世间再无复杂架构
详解Oracle架构.原理.进程,学会世间再无复杂架构 学习是一个循序渐进的过程,从面到点.从宏观到微观,逐步渗透,各个击破,对于Oracle, 怎么样从宏观上来理解呢?先来看一个图,这个图取自于教材 ...
- 详解Oracle AWR运行日志分析工具
在Oracle数据库学习和使用中,遇到性能问题,首要的步骤就是导出AWR分析报告,AWR是Oracle的一个脚本工具,通过周期性快照记录下当时的所有运行数据,数据库管理员可以导出其中一部分数据进行分析 ...
- Spotify敏捷模式详解三部曲第二篇:研发过程
本文转自:Scrum 中文网 引言 在本系列文章的第一篇,我们介绍了Spotify的敏捷研发团队,以及它独特的组织架构.Spotify的研发团队采用的是一种非常独特的组织架构,如下图所示: 整个研发组 ...
- Android Loader 异步加载详解二:探寻Loader内部机制
Android Loader 异步加载详解二:探寻Loader内部机制 转载请标明出处:http://blog.csdn.net/zhaoyanjun6/article/details/7025991 ...
- Oracle一张表写多个触发器,详解oracle中通过触发器记录每个语句影响总行数
详解oracle中通过触发器记录每个语句影响总行数 需求产生: 业务系统中,有一步"抽数"流程,就是把一些数据从其它服务器同步到本库的目标表.这个过程有可能 多人同时抽数,互相影响 ...
- DDR3内存详解,存储器结构+时序+初始化过程
转载 DDR3内存详解,存储器结构+时序+初始化过程 2017-06-17 16:10:33 a_chinese_man 阅读数 23423更多 分类专栏: 硬件开发基础 转自:http://www. ...
- oracle中调试存储过程,详解Oracle调试存储过程
详解Oracle调试存储过程 一 调试关键步骤 1.在要调试的存储过程右键,选择编辑以进行调试,截图如下: 2.点击小瓢虫,弹出调试窗口,截图如下: 3.输入7839员工编号,点击确认,进行调试,截图 ...
- 建oracle簇表,详解ORACLE簇表、堆表、IOT表、分区表
详解ORACLE簇表.堆表.IOT表.分区表 簇和簇表 簇其实就是一组表,是一组共享相同数据块的多个表组成.将经常一起使用的表组合在一起成簇可以提高处理效率. 在一个簇中的表就叫做簇表.建立顺序是:簇 ...
最新文章
- hibernate ORM related
- 【AI视野·今日CV 计算机视觉论文速览 第201期】Wed, 19 May 2021
- mysql 5.1 双机热备_mysql5.1双机热备记录
- Flutter进阶—点击、拖动和其他手势
- NYOJ 部分和问题
- 彻底杀除“logo1_.exe”(威金病毒)病毒
- 如何使用C++做个简单推箱子游戏
- c++ 模糊搜索 正则表达式_c++中正则表达式(regex)
- 【调剂】河北大学2022年硕士研究生招生拟接收调剂专业信息
- Adobe Premiere Pro CS6打开报错(Oxc000007b)解决办法
- ipqc异常处理流程图_品质异常该怎么处理?照这个流程走!
- 100个网络基础知识普及,看完你也是半个网络高手哦! 随风
- 《商业的本质》读后感
- MIMIC-III数据库的应用(一)
- docker eclipse打包_【Docker】Maven打包SpringBoot项目成Docker镜像并上传到Harbor仓库(Eclipse、STS、IDEA、Maven通用)...
- 我的JavaScript学习笔记续
- Unity 音频理解与优化
- 如何快速开发安卓app? 用传统的编程工具不行,试试猎码中文开发!
- Java作业 大于某个数的最小质数
- 2017.2.23工作日志