1 未同步文件:一旦发现未同步的文件,Oracle 服务器会确定是否需要恢复数据库。例程故障,如关闭中止,就会导致不同步。在这种 情况下,未提交的数据都将丢失,原因是在关闭之前内存中的数据 尚未写入磁盘,因而文件未得到同步。
2 前滚阶段:DBWR 将已提交和未提交的数据都写入数据文件。前滚阶段的目的是将日志文件中记录的所有更改应用到数据块中。
注:
- 在前滚阶段中将向还原段置入条目。由于重做日志存储数据更改之前和之后的映像,因此如果在数据文件中发现未提交的块,且没有回退条目,则会添加还原段条目。
- 使用日志缓冲区来应用重做日志。已用缓冲区被标记为用于恢复,而不参与正常事务处理,直到它们被恢复进程放弃。
- 如果发生状态冲突(即,文件头声明该文件是只读的,但是控制文件将其识别为可读写,或是相反情况),重做日志将应用于只读数据文件。
3 数据文件中的已提交和未提交数据:前滚阶段成功结束后,所有已提交数据都将驻留在数据文件中,尽管未提交数据仍有可能存在。此时数据库即可打开。
4 回退阶段:要从文件中删除未提交数据,需要使用在前滚阶段或崩溃之前就已置入数据的还原段。当Oracle 服务器或用户请求块时,将向先请求的一方回退相应的块。因此,即使处在回退过程中,数据库也仍然可用。只有参与回退的那些数据块不可用。
5 数据文件中的已提交数据:当前滚和回退阶段都结束后,只有已提交的数据才驻留在磁盘上
例程恢复阶段
原创
©著作权归作者所有:来自51CTO博客作者程序员紫龙的原创作品,请联系作者获取转载授权,否则将追究法律责任
上一篇:oracle审计功能
下一篇:ORACLE流复制

提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
udpserver例程
#include#include#include#include#include#include#include#define PORT 8900int main(){
binding struct socket exchange server -
示波器例程
示波器例程
上传 数据 十进制 -
转换例程。
FLOAT 转日期CTCV_CONVERT_FLOAT_TO_DATE日期转换为内部格式callfunction'CONVERT_DA
abap 日期格式 SAP 日期转换