当前位置:  数据库>oracle

Oracle教程:实例故障恢复

    来源: 互联网  发布时间:2017-04-08

    本文导语: MTBF:Mean-Time-Between-Failures两次故障之间的平均无故障时间MTTR:Mean-Time-To-Recover故障恢复平均时间 故障分类:1.SQL表达式引起的故障BUG,非法数据,超过权限,配额限制2.用户进程故障断开连接,会话注销,用户进程BUG,PMON自动处...

MTBF:Mean-Time-Between-Failures两次故障之间的平均无故障时间
MTTR:Mean-Time-To-Recover故障恢复平均时间

故障分类:
1.SQL表达式引起的故障
BUG,非法数据,超过权限,配额限制
2.用户进程故障
断开连接,会话注销,用户进程BUG,PMON自动处理此故障
3.用户故障
人为清空、删除表
4.网络故障
断网
5.实例故障
断电,SMON进程处理此故障
6.介质故障
磁盘损坏,RMAN热备和dataguard容灾











内存结构
database buffer cache:存储从datafile中读取的blocks。数据由server process从数据文件读入database buffer cache,数据由DBWn进程从database buffer cache写入datafile;

redo log buffer:存储对数据库的任何改变,由LGWR写到redo logs

Large pool:可选组件,备份等需要使用的大内存

shared pool:存储已经解析的SQL表达式和PL/SQL过程,数据字典信息

java pool:存储java code和JVM

后台进程
DBWn(Database writer):把database buffer cache的脏数据(即已修改的数据)写到datafile。

LGWR(Log writer):把redo log buffer数据写到redo log files

SMON(System monitor):自动实例恢复,恢复临时段的空间当不再使用时,合并零散空间。

PMON(Process monitor):清理连接进程;回滚进程操作和资源。

CKPT(checkpoint) :把当前redo log信息同步到datafile和control files的头上。

ARCn(Archiver):可选,把redo logs自动复制到其他地方。

用户进程
连接数据库的程序进程,如:sqlplus

服务进程
接收用户进程请求,处理请求。专有服务进程和共享服务进程

数据库文件
Datafile:数据的物理存储,至少一个。
Redo logs:存储数据改变,至少2组。
Control files:记录了数据库的状态,物理结构,RMAN预处理数据
Archive logs :联机重做日志文件的物理备份。



initialization parameter file:Pfile文件,存储实例启动所需参数
Server initialization parameter file:SPfile文件,存储实例启动所需持久的参数,二进制文件。
Password file:存储能启动、停止和恢复数据库的特权用户的信息;二进制文件。可使用工具ORAPWD.EXE手工创建密码文件

动态视图
v$sga
v$sgastat
v$instance
v$process
v$bgprocess
v$database
v$datafile






large pool:用于Oracle备份和还原操作,I/O server processes,共享服务者(shared server)进程的会话内存。
配置large pool可以阻止RMAN在其它部件分配内存,RMAN用large pool进行备份和还原当你设置DBWR_IO_SLAVES或者BACKUP_TAPE_IO_SLAVES参数去模拟异步I/O时。如果2个参数都没设置,ORACLE会从local process memory分配备份缓冲区,而不是从shared pool。

如果large_pool_size参数被设置了,oracle会尝试去large pool获取内存。如果这个值不够大,oracle也不会尝试去shared pool获取缓冲区。如果没配置,oracle会分配共享内存缓冲区从shared pool。
如果orcle不能得到充足的内存,它就会从local process memory得到I/O缓冲区。而且会写信息到alert.log中,指出同步I/O被用于备份。

database buffer cache:用于存储大多数最近使用的数据块的区域,使用最近最少使用算法(LRU)去决定覆盖某些以用来容纳新的block。

DBWn:写修改过的数据到数据文件,以确保可以从datafile读取新的block到database buffer cache。周期性的同步database buffer cache和datafile(即把database buffer cache写回到datafile)。繁重的工作可配置20个DWBn进程,DBW0-DBW9,DBWA-DBWJ。

redo log buffer:是一个有对数据库改变信息的环形缓冲区,这些信息存储在redo entries。
redo entries包含需要重建或重做的信息,如INSERT、UPDATE、DELETE、CREATE、ALTER、DROP操作。redo entries用于数据库恢复,如果需要的话。redo entries被server process从用户内存空间复制到redo log buffer。

LGWR:当redo log buffer三分之一满,当每3秒,当有1MB的redo信息,当在DBWn写修改过的数据到数据文件之前,当commit时,写redo log file。

checkpoint position:恢复开始的地方,联机重做日志文件里的一个点。
它是checkpoint queue的第一个entry的开始标志。
例如:checkpoint这一点之前的redo log数据已被写到数据文件里。

checkpoint queue:内存中的队列链表。
checkpoint queue里的每个entry包含数据块的标识和与之相关的redo entry的信息。这样的一个entry被称为RBA(redo byte address)。DBWn读取checkpoint queue的一个entry写入数据文件后删除这个entry。

checkpoint的类型
FULL checkpoint:全checkpoint,把所有的buffer都写入数据文件。当shutdown normal,immediate,transactional和alter system checkpoint时发生。

Incremental checkpoint:增量checkpoint,周期性写,闲置时写。

partial checkpoint:部分checkpoint,写表空间的脏数据。当alter tablespace begin backup和alter tablespace xxx offline normal。

CKPT:在检查点发生时通知DBWn进程去写datafile后,更新datafiles和control files的头去指出最近的checkpoint。每隔3秒,CKPT记录检查点队列里面的第一个entry的RBA信息到控制文件中。只有在日志切换的时候,CKPT才会更新数据文件的头,为了提高性能不会马上更新所有的头,而是“懒写”。日志切换时不会把所有的脏数据写到磁盘。

control file:二进制文件,它描述了数据库的结构,当数据库处于mount或open状态的时候它必须能被数据库服务器来写。它的名字取决于操作系统。没有这个文件数据库不能被mount。推荐配置最少2个控制文件放在不同的磁盘以减少控制文件丢失带来的影响。控制文件损坏一个数据库就不能工作。控制文件包含数据库名字、数据库创建的时间戳,恢复所需的同步信息、数据文件和联机重做日志文件的名字和位置、数据库的归档模式、当前log sequence number、RMAN的备份元信息。

archived log file:用作media recovery。当被设置为归档模式时,LGWR进程会等联机重做日志文件被归档后才继续工作。

ARCn:可选进程。当被启动时,它会把redo log files拷贝到指定的存储区域。这个进程对7*24数据库的备份恢复有很大的意见。当日志切换时,ARCn进程被触发,把最近没归档的redo log组的一个成员拷贝到指定位置。

数据库同步:
1.所有数据文件(除了离线与只读的)必须被同步后数据库才能被open。
2.同步是基于当前checkpoint number。
3.发现不同步,数据库使用redo log files改变的记录同步数据文件
4.redo log files自动被数据库服务器请求。



实例恢复:
1.判断数据文件是否同步;
2.利用redo log前滚:写redo log files最近一个checkpoint之后的数据(包括undo数据)到数据文件;
3.数据文件现在包含提交的和未提交的改变,数据库可以被open;
4.利用undo log回滚未提交的改变:删除datafile中未提交的数据;
5.至此所有数据都提交。
不像media recovery,crash recovery和instance recovery是自动的。crash recovery是所有实例都恢复,instance recovery是单实例恢复。





调整实例恢复的持续时间:
1.设置一些初始化参数影响恢复需要的refo log记录和数据块的数量;
(新参数)
FAST_START_MTTR_TARGET:指定恢复时间最大值,单位为秒。
(2个老参数)
LOG_CHECKPOINT_TIMEOUT:2次检查点发生间隔的时间。
LOG_CHECKPOINT_INTERVAL:增量检查点与最近写到redo log的块之间的redo log file块的数目。
2.控制redo log file的大小和refo log块的大小来影响checkpoint发生的频率;
3.用SQL表达式手动强制检查点发生
4.并行恢复








实例恢复视图v$instance_recovery;
实例恢复优化
1.前滚:采用并行块恢复策略,recovery_parallelism可以设置并行进程数。
2.回滚:采用急需和并发2种恢复策略,fast_start_parallel_rollback可以设置并行程度,false为不使用并行,low:回滚进程数为CPU数的2倍,high:回滚进程数为CPU数的4倍。
回滚对应的2个视图:v$fast_start_servers:并发进程的信息;v$fast_start_transactions:需要回滚的transaction信息。




    
 
 

您可能感兴趣的文章:

  • Linux上建立第二个ORACLE实例分析
  • Linux操作系统下Oracle数据库多实例启动方式及修改内存
  • oracle的存储过程实例讲解
  • linux redhat5.6安装oracle11g在自动创建实例时停住不动,有图
  • oracle分页存储过程 oracle存储过程实例
  • C#连接Oracle数据库的实例方法
  • Oracle数据库实例两则
  • Oracle 删除归档日志实例
  • Oracle 10g for solaris准备工作和实例的删除
  • Oracle 11G 无法连接到数据库实例故障排除
  • Linux下设置Oracle 10g 服务以及实例自动启动
  • oracle group by语句实例测试
  • Oracle数据库异构服务原理及实例说明
  • Linux下删除Oracle实例
  • 与Oracle RAC相关的连接配置写法实例
  • Oracle监听器Server端与Client端配置实例
  • Oracle中使用触发器(trigger)和序列(sequence)模拟实现自增列实例
  • oracle删除已存在的表的实例
  • Aix 5.3下自动备份Oracle多个实例
  • Oracle数据库安全性管理基本措施实例解析
  • 关于oracle816数据库启动故障问题
  • Linux下Oracle RAC一个节点宕机导致共享存储无法挂载的故障排除
  • 一次Oracle故障处理过程
  • Oracle数据库系统紧急故障处理方法
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • Oracle数据库恢复后心得
  • 关于系统重装后Oracle数据库完全恢复的解决办法
  • oracle drop table(表)数据恢复方法
  • Oracle数据库备份和恢复工具 RMan
  • oracle备份恢复的具体方法
  • oracle中误删除表后恢复语句(FLASHBACK)
  • oracle冷备份恢复和oracle异机恢复使用方法
  • 在Oracle 10gR2中设定指定的恢复点实现轻松闪回
  • Oracle重做日志文件损坏或丢失后的恢复
  • Oracle11g备份和恢复功能的提高
  • 实战Oracle数据库备份与恢复
  • Oracle数据库冷备份的异地恢复
  • oracle下实现恢复一个丢失的数据文件的代码
  • 详解通过Backup Exec来实施Oracle灾难恢复
  • Oracle的恢复管理器及DBMS_JOB包分析
  • Oracle数据库文件恢复以及备份思路
  • Oracle数据库备份恢复最佳实践
  • oracle如何恢复被覆盖的存储过程
  • rman恢复方案和oracle异机恢复
  • oracle数据库创建备份与恢复脚本整理
  • Oracle 12c发布简单介绍及官方下载地址
  • 在linux下安装oracle,如何设置让oracle自动启动!也就是让oracle那个服务自动启动,不是手动的
  • oracle 11g最新版官方下载地址
  • 请问su oracle 和su - oracle有什么不同?
  • Oracle 数据库(oracle Database)Select 多表关联查询方式
  • 虚拟机装Oracle R12与Oracle10g
  • Oracle数据库(Oracle Database)体系结构及基本组成介绍
  • Oracle 数据库开发工具 Oracle SQL Developer
  • 如何设置让Oracle SQL Developer显示的时间包含时分秒
  • Oracle EBS R12 支持 Oracle Database 11g
  • Oracle 10g和Oracle 11g网格技术介绍


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3