数据库的Instance/Crash Recovery

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数据库的Instance/Crash Recovery相关的知识,希望对你有一定的参考价值。

crash recovery是指单实例数据库发生了failure、或者rac数据库中的所有实例都发生了failure后进行的recovery。rac数据库crash后,rac中第一个重启启动的instance负责进行crash recovery。
instance recovery是指rac环境中,剩下存活的instance的smon进程对已经发生failure的instance进行的recovery。实例恢复时可以查看视图gv$instance_recovery进行监控

 

Instance/Crash Recovery二者都不需要管理员人工参与。

 

Instance/Crash Recovery的目标是还原instance中止时cache中已经修改的数据块,并将仍处于open状态的redo thread关闭。Instance/Crash Recovery只会用到在线联机日志文件和当前在线的数据文件。

Instance/Crash Recovery包含两个阶段:前滚和回滚。前滚会将在线连接日志文件中已提交、未提交的事务记录应用到在线的数据文件上;回滚是将未提交的事务所做的修改变到最初的状态。

Instance/Crash Recovery有以下共同的特点:
-对当前在线数据文件重做修改操作
-只需要在线连接日志文件,不需要归档日志
-需要的时间与发生failure的instance的个数、redo的产生量(自上一个checkpoint后)、用户的配置(如redo日志的大小、检查点频率、是否开启并行等)等有关

Instance Recovery的过程:
1.执行实例恢复时,oracle会识别出上一次发生的检查点。
2.从上一次检查点开始,应用那些以及写入在线联机日志文件、但是还没有写入数据文件的操作。在前滚阶段会使用到RBS和用户数据
3.前滚结束,数据库被打开、用户可以连接到数据库。但是,未提交的事务会锁住有些数据
4.执行回滚操作
5.恢复过程结束

以上是关于数据库的Instance/Crash Recovery的主要内容,如果未能解决你的问题,请参考以下文章

Oracle 数据 update后怎么恢复到以前的数据

RMAN恢复控制文件

诊断:ORA-00376 & ORA-01110

网络事件触发自己主动登录

ubuntu 16.04 忘记root密码

Golang 中 defer 的五个坑 - 第三部分