zoukankan      html  css  js  c++  java
  • Oracle Redo日志的状态

    CURRENT:指的是当前的日志文件,该日志文件是活动的,当前正在被使用的,在进行崩溃恢复时,Current的日志文件时必须的。

    ACTIVE:活动的非当前日志,该日志可能已经完成归档也可能没有归档,活动的日志文件在Crash恢复时会被用到。

      ACITVE状态意味着检查点尚未完成,如果日志文件循环使用再次到达该文件,数据库将处于等待的停顿状态,此时在alert文件中,可以看到类似如下记录:Checkpoint not complete。当这种问题出现时,可以从数据库内部通过v$session_wait来观察,该视图会显示数据库当前哪些session正处于这种等待。Checkpoint not complete在数据库中体现为等待事件log file switch(checkpoint incomplete):

    SQL> select sid,event,state from v$session_wait;---查询结果中event的值为:log file switch

      在此同时,可能DBWR进程正在进行db file parallel write,日志文件必须等待DBWR完成检查点触发的写操作之后才能被覆盖。如果设置了参数log_checkpoints_to_alertTRUE的话,还可以在alert文件中清晰地看到检查点的增进和完成情况。

    引起Checkpoint Incomplete可能有以下多种原因

    日志文件过小,切换过于频繁;

    日志组太少,不能满足正常业务量的需要;

    日志文件所在磁盘I/O存在瓶颈,导致写出缓慢,阻塞数据库正常运行;

    由于数据文件磁盘I/O瓶颈,DBWR写出过于缓慢;

    由于事务量巨大,DBWR负载过高,不堪重负。

    解决方法

    适当增加日志文件大小;

    适当增加日志组数;

    使用更快的磁盘存储日志文件(如采用更高转速磁盘;使用RAID10而不是RAID5等方式);

    改善磁盘I/O的性能;

    使用多个DBWR进程或使用异步I/O等。

    注意:Checkpoint Incomplete是一类严重的等待,它意味着数据库不能再产生日志,所有数据库修改操作将全部挂起。

    INACTIVE:非活动日志,该日志在实例恢复时不再需要,但是在介质恢复时可能会用到。INACTIVE状态的日志也可能没有被归档。如果数据库启动在归档模式,在未完成归档之前,日志文件也不允许被覆盖,这时候活动进程会处于log file switch(archiving needed)等待之中。日志是否完成归档,可以根据v$log视图的archived字段进行判断。

    UNUSED:是指该日志从未被写入,这类日志可能是刚被添加到数据库或者在RESETLOGS之后被重置。被使用之后,该状态会被改变。

     

  • 相关阅读:
    mongodb数据类型
    Pycharm2020.1 破解教程
    酱茄主题(资讯/社区WordPress主题)正式发布
    WordPress社区商城小程序“酱茄pro小程序”V1.7.8发布
    SpringBoot 的@Value注解真是太强了,谁用谁说爽!
    python3_String复习
    Core Data的简单实用
    git submodule
    区间修改主席树
    快速数论变换ntt
  • 原文地址:https://www.cnblogs.com/polestar/p/2847757.html
Copyright © 2011-2022 走看看