Oracle 恢复机制由ACID 模型驱动,其宗旨是在发生故障后实现数据完整性和一致
性。三种重要的故障类型是事务、实例和介质故障。本节重点介绍实例和介质恢复。
- 实例恢复
在数据库实例出现故障时,即系统全局区(System Global Area,SGA)(或更确切地讲,
是缓冲区高速缓存)的内容丢失,将进行实例恢复。发生实例故障后的恢复由ORL 文件
驱动,该文件已经持久保存了更改信息(ACID 的持久性)。崩溃恢复只是另一种实例恢复
情形,当单节点数据库崩溃并重启或RAC 数据库的所有实例出现故障时,将进行崩溃恢
复。启动的第一个实例将启动崩溃恢复。实例恢复和崩溃恢复的机制是相同的。
下面的输出信息来自数据库的alert.log,说明了上次崩溃后数据库打开时的恢复进度。
ALTER DATABASE OPEN
Beginning crash recovery of 1 threads
Started redo scan
Completed redo scan
94354 redo blocks read, 2982 data blocks need recovery
Started redo application at
Thread 1: logseq 62, block 427
Recovery of Online Redo Log: Thread 1 Group 2 Seq 62 Reading mem 0
Mem# 0: +DATA/Matrix/redo_02a.log
Mem# 1: +DATA/Matrix/redo_02b.log
Completed redo application
Completed crash recovery at
Thread 1: logseq 62, block 94781, scn 678972
2982 data blocks read, 2982 data blocks written, 94354 redo blocks read
Mon Jul 07 21:44:34 2008
注意,打开数据库后,崩溃恢复首先扫描一个或多个故障实例的重做线程,然后按
SCN 读取和合并,从每个线程上一个增量检查点的日志顺序开始。扫描过程生成一个需
要恢复的块列表。从此时间点开始恢复,将恢复重做数据应用于这些块。在恢复完毕后,
会将重做块读取和数据块读取的摘要信息写入警报日志中。
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




