> 데이터 베이스 > MySQL 튜토리얼 > Oracle实例恢复的原理

Oracle实例恢复的原理

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
풀어 주다: 2016-06-07 17:10:05
원래의
744명이 탐색했습니다.

简单分析一下Oracle数据的实例恢复当数据库突然崩溃,例如突然掉电,硬件故障等 ,还没来得及将buffer cache里面的脏数据块写入到

简单分析一下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进程实例恢复完成,并打开数据库,没有被提交的数据将被回滚。

linux

관련 라벨:
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿