zoukankan      html  css  js  c++  java
  • Oracle Redo log 状态及工作原理解析

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

     概述

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

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

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

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

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

     实验

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

    查看当前日志组:

    SQL> select GROUP#,BYTES,MEMBERS,ARCHIVED,STATUS from v$log;

    日志组为4组,分别为inactive、current、current、inactive

    我们进行手动归档,再看状态

    SQL> alter system switch logfile;

    发现组一已经从不活跃(inactive)变为运行中(current),组二已经从当前(current)变为了active,组三、四状态不变。说明命令使得日志的写入切换至第一组,第二组正在进行归档和进行必要的数据写入至datafile。待这两项工作完成后再看下图

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

    总结

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

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

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

    其他相关知识点:

    Oracle调整联机重做日志大小(change redo log size) http://www.linuxidc.com/Linux/2013-03/81453.htm

    Oracle 联机重做日志文件(ONLINE LOG FILE) http://www.linuxidc.com/Linux/2011-03/33068.htm

    Oracle联机重做日志丢失的恢复 http://www.linuxidc.com/Linux/2014-04/100893.htm

    Oracle 联机重做日志文件(online redo log file) 详述 http://www.linuxidc.com/Linux/2013-06/86290.htm

    Oracle重做日志文件版本不一致问题处理 http://www.linuxidc.com/Linux/2012-08/69026.htm

    【备份与恢复】恢复受损的复用联机重做日志文件 http://www.linuxidc.com/Linux/2012-06/63497.htm

    本文按https://www.linuxidc.com/Linux/2014-05/101631.htm做实验

  • 相关阅读:
    C++中的模板编程
    C++中的抽象类
    C++中的多态
    C++中的继承
    操作符重载(二)
    操作符重载(一)
    C++中的类与对象模型
    [八省联考2018] 劈配 (网络流+二分)
    CF51F Caterpillar (边双+树形DP)
    CF36E Two Paths (欧拉回路+构造)
  • 原文地址:https://www.cnblogs.com/-abm/p/9944110.html
Copyright © 2011-2022 走看看