视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
Oracle重做日志组状态及切换解析
2020-11-09 12:38:20 责编:小采
文档


Oracle重做日志(redo log)是用来记录操作条目,用于数据库数据恢复。为了提高效率,oracle通常建议设置三组redo log。本文将对

Oracle重做日志(redo log)是用来记录操作条目,用于数据库数据恢复。为了提高效率,oracle通常建议设置三组redo log。本文将对重做日志组的状态以及多种状态之间切换做解析,力求掌握该知识点。

Oracle调整联机重做日志大小(change redo log size)

Oracle 联机重做日志文件(ONLINE LOG FILE)

Oracle联机重做日志丢失的恢复

Oracle 联机重做日志文件(online redo log file) 详述

Oracle重做日志文件版本不一致问题处理

【备份与恢复】恢复受损的复用联机重做日志文件

一.概述

oracle重做日志组通常有四种状态,即unused,inactive,active,current。

unused通常指从未被使用的日志组,,即新添加的日志组。

current状态为LGWR进程正把redo log buffer的日志写进日志组中。

active为刚刚完成日志切换后的状态,此时该日志组中提交的事务引起的数据改变还没有完全从DB buffer cache写入到数据文件中,因此该日志组还不能被覆盖,并且待完全写入后变为inactive状态。如果数据库为归档模式,那么是在该状态下完成归档的。

inactive状态的日志可以被覆盖,可以允许写入日志。如果是在归档模式下,那么此阶段证明归档已经完成。

二.实验

本次实验以开启归档模式为例:

日志组为三组,状态分别为inactive,inactive,current。如图:

手动归档后,观察发现组1的状态变为current,组3的状态变为active,组2的状态不变 。如下图:

说明当前写入的日志组为组1,组3正在进行归档和进行必要的数据写入至datafile。待这两项工作完成后,再看如下图:

说明组3已经完成了归档,可以允许下一次写入了。在非归档模式下,组3的状态也能变成inactive,说明完成了数据从DB BUFFER CACHE写入至DB files。

三、总结

上述实验很好的说明了oracle日志组在整个生命周期所具有的状态。当然没有看到unused状态,这种状态是当日志组刚新添到数据库后的状态,这种操作在生产环境中很少,所以本次实验没有看到这种状态。

另外有人会认为在手动日志切换时为什么使用命令alter system archive log current。这里也做一个说明。

两组命令最后的效果一样。alter system switch logfile是不等归档完成就进行switch logfile操作,速度快,尤其在非归档模式下适用,对当前实例生效。而alter system archive log current要等待归档完成才操作,对所有实例生效。

本文永久更新链接地址:

下载本文
显示全文
专题