Oracle实例恢复的原理-阿里云开发者社区

开发者社区> 技术小胖子> 正文

Oracle实例恢复的原理

简介:
+关注继续查看

   简单分析一下oracle数据的实例恢复

  当数据库突然崩溃,例如突然掉电,硬件故障等 ,还没来得及将buffer cache里面的脏数据块写入到数据文件中,同时在实例崩溃时,运行的事物也突然被中断,这时候事物是出于中间状态的,既没有提交也没有回滚,这个时候数据文件是不一致的状态。

 当修复完故障启动实例的时候,oracle的SMON进程会执行实例恢复,检查控制文件中的STOP SCN号(SCN 有四种1:系统SCN 2:数据文件SCN 3:启动SCN号 4: 终止SCN号) 数据库在正常运行中终止SCN号始终是空的,当数据库正常关闭的时候,会进行完全检查点,并将SCN号更新。当实例崩溃的时候,ORACLE还没来得及更新终止SCN号的时候,这时候终止SCN号是空的,当SMON进程检查该终止SCN号是空的,就认为数据库没有正常关闭,于是开始了实例的恢复。

  SMOIN进行实例恢复的时候,会从控制文件中查找检查点位置,根据在控制文件中查找到的检查点位置到联机日志文件中搜索这一位置,然后从该位置开始应用重做条目。重现实例崩溃的那个时间点的状态,这个过程叫做前滚,等待前滚完毕,数据库缓存中会有已经提交的和没有提交的脏数据块。 SMON进程实例恢复完成,并打开数据库,没有被提交的数据将被回滚。

 

     本文转自andylhz 51CTO博客,原文链接:http://blog.51cto.com/andylhz2009/460910,如需转载请自行联系原作者

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
21119
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
《2021云上架构与运维峰会演讲合集》
立即下载
《零基础CSS入门教程》
立即下载
《零基础HTML入门教程》
立即下载