块修复是最简单的恢复,在数据库正常操作过程中由系统自动做的,用户几乎感觉不到。
7.1 块修复初始化和操作
前台进程在修改一个缓冲区的时候调用重做程序在该缓冲区上应用改变向量时因为前台进程僵死或者触发一个错误而导致缓冲区的状态不一致,块修复就是用来修复这种缓冲区的状态。修复的过程包括:(i)从磁盘上读取该块;(ii)用当前线程的重做日志重新构建该缓冲区的一致版本;(iii)将修复的块写回磁盘。如果块修复第一次失败了,会再尝试第二次,然后将该块标识为逻辑损坏(将该块的序号置为0),然后触发一个块损坏的错误。
块修复使用当前线程的重做日志构建缓冲区是可行的,因为:
- 块修复不能使用其他线程的重做日志或者当前线程最后一次检查点之前的重做日志。
- 直到当前线程检查点超出日志,联机日志才不会重用。
- 数据缓冲区中的都不需要从最后一次线程检查点之前的重做日志进行恢复。
7.2 缓冲区头部RBA 字段
缓冲区头(一个内存数据结构)包含下面这些跟块修复有关的字段:
Low-RBA和High-RBA:Low-RBA是从该数据块最后一次块清除操作以来应用的第一个重做日志的地址,High-RBA是该数据块最新的变更对应重做日志的地址。二者结合起来描述了将该数据块从磁盘上的版本变成最新的版本所需要的重做日志范围。
Recovery-RBA:当执行块修复的是PMON进程时且完成所有的块修复可能需要很长时间就用Recover-RBA来记录进度的。
7.3 PMON 和前台进程调用
如果前台进程在回调重做日志程序时前台进程报错,将由前台进程执行块修复;如果前台进程不是报错而是僵死了,将由PMON进程执行块修复。
块修复可能需要大量的时间和I/O。不过PMON进程可以有充足的时间做块修复而忽略其他紧急任务。因此对每次PMON执行块修复使用重做日志的量有个限制(一个常量指定了每次PMON调用可以使用的重做日志块的数量)。每次PMON执行块修复应用完最大的重做日志后,都会更新数据缓冲区的 Recovery-RBA字段以记录它的进度。当Recovery-RBA值达到High-RBA的值后,针对这个块的块修复过程结束。
继第八章Oracle恢复内部原理(重置日志resetlogs)
**********本博客所有内容均为原创,如有转载请注明作者和出处!!!**********
Name: guoyJoe
QQ: 252803295
Email: oracledba_cn@hotmail.com
Blog:http://blog.csdn.net/guoyJoe
ITPUB:http://www.itpub.net/space-uid-28460966.html
OCM:http://education.oracle.com/education/otn/YGuo.HTM
_____________________________________________________________
加群验证问题:哪些SGA结构是必需的,哪些是可选的?否则拒绝申请!!!
答案在:http://blog.csdn.net/guoyjoe/article/details/8624392
Oracle@Paradise 总群:127149411
Oracle@Paradise No.1群:177089463(已满)
Oracle@Paradise No.2群:121341761
Oracle@Paradise No.3群:140856036
分享到:
相关推荐
"Oracle 坏块修复" Oracle 坏块修复是指在 Oracle 数据库中出现的数据块混乱现象,导致数据库进程无法正常解析数据块的内容,进而使数据库进程报错乃至挂起,并级联导致整个数据库实例出现异常。 一、坏块的产生...
ORACLE内部培训ORACLE内部培训ORACLE内部培训ORACLE内部培训ORACLE内部培训ORACLE内部培训ORACLE内部培训ORACLE内部培训ORACLE内部培训ORACLE内部培训ORACLE内部培训ORACLE内部培训ORACLE内部培训ORACLE内部培训...
第7章 数据库保护 第8章 ORACLE的企业管理器(Enterprise Manager) 第9章 分布式数据库系统 第10章 数据库应用程序开发工具-ORACLE Developer 第11章 ORACLE J2EE高级技术与JDeveloper 第12章 ORACLE程序实例...
为了解决这个问题,Oracle实施了一些内部机制,例如提交前先刷新日志块,以减少未写入磁盘的脏数据量,以及检查点机制,定期将缓存中的数据写入数据文件并更新重做日志,以便在恢复时有明确的起点。 此外,Oracle的...
Oracle 数据库在线备份原理 Oracle 数据库在线备份原理是指在 Oracle 数据库中对数据库进行在线备份的基本原理和方法。该原理是基于 Oracle 数据库的基本概念和机制,包括表、数据查询语句、DML 语句和 DDL 语句等...
Oracle 恢复误删除数据 Oracle 数据库是企业级的关系数据库管理系统,广泛应用于各种行业。然而,在实际操作中,误删除数据是一种常见的错误。因此,了解如何恢复误删除数据是非常重要的。本文将详细介绍 Oracle ...
oracle数据块损坏及恢复,模拟了坏块报错,调整事件绕过坏块
1. **数据恢复原理** DUL通过直接读取Oracle的数据文件(.dbf)和控制文件来恢复数据,而非依赖于正常的数据库实例。它绕过传统的SQL接口,直接操作物理文件,因此即使数据库实例无法启动,DUL也能进行数据恢复。...
《oracle dba手记3:数据库性能优化与内部原理解析》由多位数据库技术专家合著而成,融合了各行业dba 的工作经验与思考,包含了精心挑选的数据库性能优化与内部原理解析案例。内容涵盖“dba 手记”,以手记形式记录...
Oracle在线备份原理主要涉及到Oracle数据库的基本操作和其工作机制。在线备份是Oracle数据库系统中一种重要的保护数据的方法,它能够在数据库持续运行的情况下进行,确保业务不中断。本文将深入解析Oracle在线备份的...
### Oracle介质恢复的内部过程详解 #### 一、引言 Oracle介质恢复是数据库管理中的一个重要环节,尤其是在处理数据丢失或损坏的情况下。本文将详细探讨Oracle介质恢复的内部过程,通过对控制文件(controlfile)、...
oracle 索引的原理原理深入理解!
在实际操作中,使用BBED进行块恢复时,DBA需要具备深厚的Oracle知识,包括理解数据块结构、能识别损坏的块类型以及熟悉如何安全地编辑数据。 在使用BBED进行块修复时,应遵循以下步骤: 1. 首先,确定损坏的块类型...
Oracle数据库是全球广泛使用的大型企业级关系型数据库管理系统,其数据恢复机制是系统稳定性和数据安全的重要保障。本文将深入探讨Oracle恢复流程的关键步骤,帮助你成为真正的Oracle恢复高手。 一、Oracle恢复基础...
Oracle 修复数据库中的坏块Oracle 修复数据库中的坏块
### Oracle特殊恢复原理与实战知识点概述 #### 一、Oracle特殊恢复概览 - **特殊恢复定义**:在Oracle数据库管理中,特殊恢复是指当常规的备份和恢复手段不足以解决问题时,采用的一种更为复杂的恢复过程。它通常...
Oracle数据库恢复是数据库管理系统中的一项重要操作,用于修复由于硬件故障、软件错误或人为失误导致的数据丢失或不一致。在Oracle中,恢复流程通常涉及多个步骤,包括启动、检查数据库状态、恢复数据文件和日志文件...
2. **Oracle数据文件结构**:了解Oracle数据文件的内部结构,包括块的组成和数据存储方式。 3. **SQL和PL/SQL语言**:用于与数据库交互,查询和验证数据。 4. **操作系统基础**:bbed是命令行工具,需要熟悉Linux或...
Oracle热备份原理分析 在数据库管理领域,Oracle数据库系统因其高效稳定而被广泛使用。为了保障数据的安全性和可用性,数据库备份是至关重要的环节。Oracle热备份,也称为在线备份,是在数据库运行状态下进行的一种...