`
wsql
  • 浏览: 12098087 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
文章分类
社区版块
存档分类
最新评论

第十章 Oracle恢复内部原理(各式各样的恢复特性)

 
阅读更多

10.1 并行恢复(v7.1)

并行恢复的目标是用计算和I/O的并行机制减少崩溃恢复、单实例恢复和介质恢复的时间。当多个磁盘上多个数据文件同时进行恢复时能有效的降低恢复时间。

10.1.1 并行恢复架构

并行恢复分区做两件事:

1. 读重做日志。

2. 应用改变向量。

步骤1不适合并行,重做日志必须按顺序读取,然后在介质恢复中合并。因此这个任务由一个进程完成:读重做日志的进程

步骤2很适合并行,因此应用改变向量的任务就委托给一组重做程序的从属进程。重做日志读取进程将改变向量发送给重做程序从属进程,用的是跟并行查询中同样的 IPC机制(进程间通讯机制)。改变向量使用HASH函数利用数据块地址做参数来分布。因此每个重做程序 进程只处理分配到它的“桶”里的改变向量。重做程序从属进程负责将数据块读入到缓存中,检查是否要应用改变向量,如果需要就应用。

这个架构达到了数据块读取I/O和改变向量应用过程中的并行。它允许日志读取I/O和数据块读取I/O可以并行进行。此外,它还允许不同HASH桶中的数据块的读取I/O可以并行进行。只要并行带来的好处比进程管理和通信带来的成本大就有效的缩减了恢复用的时间。

10.1.2 并行恢复系统初始化参数

PARALLEL_RECOVERY_MAX_THREADS

PARALLEL_RECOVERY_MIN_THREADS

这两个参数控制崩溃恢复或者介质恢复中重做程序从属进程的数量。

PARALLEL_INSTANCE_RECOVERY_THREADS

这个参数控制实例恢复中重做程序从属进程的数量。

10.1.3 介质恢复语法变化

RECOVER DATABASE命令新增了一个可选参数用来指定重做程序从属进程的数量。如果指定了该参数,将覆盖默认参数PARALLEL_RECOVERY_MAX_THREADS的值。

RECOVER TABLESPACE命令新增了一个可选参数用来指定重做程序从属进程的数量。如果指定了该参数,将覆盖默认参数PARALLEL_RECOVERY_MIN_THREADS的值。

RECOVER DATAFILE命令新增了一个可选的参数用来指定重做程序从属进程的数量。如果指定了该参数,将覆盖默认参数PARALLEL_RECOVERY_MIN_THREADS的值。

10.2 重做日志 Checksums (v7.2)

日志checksum允许日志在被归档之前先检查一下是否有损坏。目的是为了防止损坏的日志被复制(归档)。这个特色将会和一个新命令 CLEAR LOGFILE 结合使用,用来清除一个损坏的联机日志而不归档。

一个新的初始化参数LOG_BLOCK_CHECKSUM控制了是否激活日志checksum功能。如果设置了,每个日志块从缓冲区中写入到磁盘之前都会计算一个值放在日志块的头部。以后该checksum值将会在归档时或者恢复的时候被验证。如果验证发现该日志块的checksum值不对,则会尝试读取该日志组的其他成员中的日志块(如果有其他成员的话)。如果所有成员都有不可避免的checksum错误,则日志读取操作失败。

如果一个不可恢复的checksum错误导致日志不能被归档,则该日志就不能被使用。最后日志切换以及产生新的日志都会延迟。如果不采取措施,数据库就会停止。CLEAR LOGFILE命令提供了一种方式避免要归档该日志。

10.3 清除日志 (v7.2)

如果一个联机日志组的所有成员都丢失或者损坏(如因为checksum错误或者介质错误等)。重做日志程序可能还可以正常进行直至要重用该日志组的时候。一旦所有线程的检查点都超出了该日志,则该日志可以被重用。但下列情形使得重用失败:

1. 日志因为checksum错误而不能归档,不能归档又导致该日志不能被重用。

2. 日志切换失败因为该日志不可用(如因为介质失败),该日志可能已归档或未归档。

ALTER DATABASE CLEAR LOGFILE命令用于将一个非活动状态的日志文件(即崩溃恢复不需要的日志文件)从上面这样的情形中解决出来。CLEAR LOGFILE允许有一个非活动状态的日志被清除,如丢弃并初始化,类似于先DROP LOGFILE再ADD LOGFILE。很多情形下用这个命令可以避免不必要的关闭数据库或者重置日志。

注意:CLEAR LOGFILE 不能用于清除崩溃恢复需要的联机日志(如状态为”current”或”active”的日志)。如果这样的联机日志损坏了,则需要以异常方式关闭数据库,然后做不完全恢复并以重置日志选项打开数据库。

使用UNARCHIVED选项使得日志清除过程顺利进行即使是该日志文件还没有归档。该情形下不允许用DROP LOGFILE此外CLEAR LOGFILE允许处理下列情形:

1. 线程中只有两个日志组

2. 在介质失败中所有日志组的成员都丢失或损坏了

3. 要清除的日志是一个已关闭线程的当前日志

上面所有情形都不允许用DROP LOGFILE。

清除未归档的日志文件使得现有的备份都没有用了,因为恢复需要该日志文件。因此建议清除未归档日志后立即对数据库进行全备份。此外,UNRECOVERABLE DATAFILE选项在数据文件脱机且联机前的恢复需要该日志文件时必须结合使用。在CLEAR LOGFILE命令中带上UNRECOVERABLE DATAFILE选项,脱机的数据文件以及相应的表空间必须得从数据库中删除,因为让这个数据文件联机时恢复的日志被清除了且没有备份了。

前台进程在执行CLEAR LOGFILE时分为以下几个步骤:

1. 检查该日志文件不是崩溃恢复需要的,且可以清除

2. 在控制文件中将该日志标记为“正在清除”和“不需要归档”,这样该日志文件就不能够作为日志切换的候选成员了。

3. 重新创建了一个新的日志文件,用多块写将其清零(一个漫长的过程)。

4. 重置“正在清除”的标记。

如果前台进程在执行CLEAR LOGFILE命令中途死掉了,日志将不可用。重做日志程序将会延迟,数据库可能会停止,尤其是在日志切换的时候会发生,因为得等待检查点完成或者归档完成。假如前台进程执行CLEAR LOGFILE时真的死掉了,那应该重新执行一次。另外一个方法就是删除已经清除一部分的日志。CLEAR LOGFILE也可能在清零时因为I/O错误而失败。解决的办法就是删除该日志并重新增加一个以替换它。




继第十一章Oracle恢复内部原理(BBED


**********本博客所有内容均为原创,如有转载请注明作者和出处!!!**********
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

DSI&Core Search():127149411



分享到:
评论

相关推荐

    10第十章Oracle数据库备份与恢复.pptx

    Oracle数据库的备份与恢复是确保数据安全和业务连续性的重要环节。本章将详细阐述Oracle数据库的备份与恢复机制,包括不同类型的备份方法、恢复策略以及Oracle提供的工具。 1. Oracle的备份与恢复机制: - 数据库...

    空间数据库课件:第十章 数据库恢复技术.ppt

    空间数据库课件:第十章 数据库恢复技术 数据库恢复技术是指在数据库系统中发生故障或错误时,通过一定的技术和手段,恢复数据库到一个一致性状态的过程。该技术主要包括事务的基本概念、数据库恢复概述、故障的...

    Oracle恢复流程图(doc)

    Oracle数据库是全球广泛使用的大型企业级关系型数据库管理系统,其数据恢复机制是系统稳定性和数据安全的重要保障。本文将深入探讨Oracle恢复流程的关键步骤,帮助你成为真正的Oracle恢复高手。 一、Oracle恢复基础...

    oracle恢复原理

    Oracle恢复原理是数据库管理系统中确保数据一致性的重要机制,主要应对两种类型的失败:实例失败和介质失败。Oracle数据库在Oracle 7.2版本中采用了详细的设计和算法来处理这两种情况。 实例失败通常发生在数据库...

    oracle恢复工具DUL

    1. **数据恢复原理** DUL通过直接读取Oracle的数据文件(.dbf)和控制文件来恢复数据,而非依赖于正常的数据库实例。它绕过传统的SQL接口,直接操作物理文件,因此即使数据库实例无法启动,DUL也能进行数据恢复。...

    oracle介质恢复的内部过程

    ### Oracle介质恢复的内部过程详解 #### 一、引言 Oracle介质恢复是数据库管理中的一个重要环节,尤其是在处理数据丢失或损坏的情况下。本文将详细探讨Oracle介质恢复的内部过程,通过对控制文件(controlfile)、...

    Veeam 备份恢复oracle数据库详细配置文档

    Veeam 备份恢复 Oracle 数据库详细配置文档 本文档旨在详细介绍如何使用 Veeam 备份恢复 Oracle 数据库的配置过程。该文档将指导读者从环境准备到推送 Oracle RMAN Plugin,再到创建备份作业和运行备份作业,最后...

    Oracle公司内部数据库培训资料

    Oracle公司内部数据库培训资料是一份宝贵的资源,涵盖了Oracle数据库的学习和实践内容。Oracle数据库是全球广泛使用的大型关系型数据库管理系统,尤其在企业级应用中占据了重要地位。这份资料旨在帮助学习者深入理解...

    oracle热备份原理分析

    Oracle热备份原理分析 在数据库管理领域,Oracle数据库系统因其高效稳定而被广泛使用。为了保障数据的安全性和可用性,数据库备份是至关重要的环节。Oracle热备份,也称为在线备份,是在数据库运行状态下进行的一种...

    ORACLE数据库恢复演练报告.doc

    Oracle数据库恢复是数据库管理系统中的关键环节,特别是在企业级应用中,数据的安全性和完整性至关重要。本报告将详述一次Oracle数据库的异机恢复测试过程,旨在检验数据库在异常情况下的恢复能力,确保业务连续性。...

    操作系统重装后oracle数据库的恢复

    重做操作系统后oracle数据库的恢复 文件夹中文件说明: ora.reg oracle主要注册项的恢复参考文件 oraodbc.reg odbc驱动项的恢复参考文件 oraole1~4.reg ole 驱动项的恢复参考文件 恢复中重要操作说明: 1、恢复前提...

    1.Oracle特殊恢复入门.pdf

    ### Oracle特殊恢复原理与实战知识点概述 #### 一、Oracle特殊恢复概览 - **特殊恢复定义**:在Oracle数据库管理中,特殊恢复是指当常规的备份和恢复手段不足以解决问题时,采用的一种更为复杂的恢复过程。它通常...

    Oracle DBA手记3-数据库性能优化与内部原理解析 中文版

    《oracle dba手记3:数据库性能优化与内部原理解析》由多位数据库技术专家合著而成,融合了各行业dba 的工作经验与思考,包含了精心挑选的数据库性能优化与内部原理解析案例。内容涵盖“dba 手记”,以手记形式记录...

    oracle 通过快照进行数据恢复

    ### Oracle通过快照进行数据恢复 #### 一、引言 在日常的数据库管理工作中,数据丢失或误删除是常见的问题之一。对于Oracle数据库来说,它提供了多种手段来进行数据恢复,其中一种有效的方式就是利用快照...

    Oracle通过DBF恢复数据

    ### Oracle通过DBF恢复数据 #### 一、背景介绍 在日常工作中,Oracle数据库作为企业级数据管理系统之一,经常面临着各种意外情况,如误删除、误操作或系统故障导致的数据丢失。在这种情况下,如何有效地恢复数据...

    oracle在线备份原理

    Oracle在线备份原理主要涉及到Oracle数据库的基本操作和其工作机制。在线备份是Oracle数据库系统中一种重要的保护数据的方法,它能够在数据库持续运行的情况下进行,确保业务不中断。本文将深入解析Oracle在线备份的...

    nbu oracle异机恢复

    因此,DBA需要充分理解Oracle数据库的工作原理和备份恢复机制。同时,熟悉NetBackup工具的使用,以及对目标主机的操作系统和硬件配置有深刻的认识,这些都是进行nbu oracle异机恢复的必备条件。另外,异机恢复前进行...

    Oracle DBA手记2:数据库诊断案例与内部恢复实践

    《Oracle DBA手记2:数据库诊断案例与内部恢复实践》是一本专为Oracle数据库管理员(DBA)设计的专业书籍,旨在深入探讨Oracle数据库的诊断技巧和内部恢复策略。本书结合实际案例,提供了丰富的实战经验,帮助读者...

    oracle重做日志原理

    本章节将深入探讨Oracle重做日志的原理,特别是其虚拟日志文件(VLF)和日志顺序号(LSN)的概念。 1. 虚拟日志文件(VLF)及其状态 Oracle将重做日志文件分割成多个虚拟日志文件(VLF),VLF的数量和大小由数据库...

Global site tag (gtag.js) - Google Analytics