Oracle实例的恢复、介质恢复( crash recovery)( Media recovery)

                                                        

                                                                     实例的恢复( crash recovery)

 

  1. 什么时候发生Oracle实例恢复?
    1. shutdown abort;
    2. 数据库异常down掉(机器死机,掉电...)
    3. 实例恢复的原因是数据有丢掉,使用redo数据恢复

 

  1. 实例恢复是一个自动的过程,不需要人工干预。
    1. 控制文件就是为了检查一致性,如果不一致就会实例恢复

 

  1. 实例恢复发生在那个阶段?
    1. sql>startup nomount(读取spfle) 启动实例,oracle给自己分了一些内存,oracle的内存起来,这个时候没有实例恢复。

SQL> startup nomount;

ORACLE instance started.

  1. sql>alter database mount(读取控制文件,把数据库mount上),没有实例恢复。

 

  1. sql>alter database open (检查控制文件,数据文件头,检查数据库的完整性),如果不一致会发生实例恢复。Oracle在打开数据库时(alter database open),会检查每个文件头上的信息(SCN)并同控制文件中相应的信息(SCN)比较,如果不一致,则进行实例恢复

 

  1. 实例恢复的过程
    1. 前滚  rolling forward
      1. 读取状态为currentactive状态的日志(redo log),将发生crash时,没有来得及写到磁盘上的数据块,使用redo的信息来恢复。
    2. 打开数据库(alter database open)
    3. 回滚 rolling back
      1. 将没有提交的事务进行回滚。

 

  1. 实例恢复
    1. sql>shutdown abort;
    2. 查看alert文件

 

                                            

                                                          介质恢复( Media recovery)

 

当发生以下情况时,实例恢复无效,需要进行介质恢复:

  1. 数据文件丢失,损坏。
  2. 在线日志文件(online redo)丢失,损坏。
  3. 数据文件太旧 (比如从一个备份集中恢复过来的文件。)
  4. 文件太新(比如,其它所有的文件都是从备份中恢复过来的)

转载于:https://www.cnblogs.com/thescentedpath/p/recovery.html

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值