甲骨文重做日志组状态及切换解析

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


一。概述

甲骨文重做日志组通常有四种状态,即未使用,不活跃,活跃,电流。

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

当前的状态为LGWR进程正把重做日志缓冲区的日志写进日志组中。

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

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

二。实验

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

日志组为三组,状态分别为不活跃,不活跃,电流。如图:

凹坠俏闹刈鋈罩咀樽刺扒谢唤馕?

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

凹坠俏闹刈鋈罩咀樽刺扒谢唤馕?

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

凹坠俏闹刈鋈罩咀樽刺扒谢唤馕?

说明组3已经完成了归档,可以允许下一次写入了。在非归档模式下,组3的状态也能变成不活跃,说明完成了数据从数据库缓冲区缓存写入至DB文件。

三,总结

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

另外有人会认为在手动日志切换时为什么使用命令改变系统归档日志电流。这里也做一个说明。

两组命令最后的效果一样.alter系统切换日志文件是不等归档完成就进行切换日志文件操作,速度快,尤其在非归档模式下适用,对当前实例生效,而改变系统归档日志目前要等待归档完成才操作,对所有实例生效。


甲骨文重做日志组状态及切换解析