zoukankan      html  css  js  c++  java
  • drop redo logfile current报错

    目的:在安装完毕11.2.0.4版本Oracle单实例数据库后,对日志进行格式化,删除原日志组current状态,删除报错

    #对于理论学习,而带来的理解命令,因此作为记录

    #查询日志状态
    SYS > select GROUP#,MEMBERS,STATUS from v$log;

    GROUP#    MEMBERS STATUS
    ------ ---------- ----------------

         1          2 CURRENT
         2          2 ACTIVE
         3          2 ACTIVE

    #查询日志组成员信息

    SYS >  select group#,member from v$Logfile where type='ONLINE'

    GROUP# MEMBER
    ------ ------------------------------------------------------
         1 /u01/app/oracle/oradata/ENMO/redo01a.log
         1 /u01/app/oracle/oradata/ENMO/redo01b.log
         3 /u01/app/oracle/oradata/ENMO/redo03a.log
         3 /u01/app/oracle/oradata/ENMO/redo03b.log
         2 /u01/app/oracle/oradata/ENMO/redo02a.log
         2 /u01/app/oracle/oradata/ENMO/redo02b.log

    6 rows selected.

    #删除 ACTIVE状态日志组,某个成员,可以成功

    SYS > alter database drop logfile member '/u01/app/oracle/oradata/ENMO/redo02a.log' ;

    Database altered.

    #删除ACTIVE状态日志组,整个组删除,失败,提示介质恢复需要使用,无法删除

    alter database drop logfile group 2
    *
    ERROR at line 1:
    ORA-01624: log 2 needed for crash recovery of instance ENMO (thread 1)
    ORA-00312: online log 2 thread 1: '/u01/app/oracle/oradata/ENMO/redo02b.log'

    #如下操作可以改变日志组状态

    SYS > alter system checkpoint;

    System altered.

    SYS > select GROUP#,MEMBERS,STATUS from v$log;

    GROUP#    MEMBERS STATUS
    ------ ---------- ----------------
         1          2 CURRENT
         2          1 INACTIVE
         3          2 INACTIVE

    #可以删除

    SYS > alter database drop logfile group 2;

    Database altered.

    #理论学习: CURRENT 代表日志组为当前日志组,log_buffer 经过lgwr进程写入此状态的日志组成员中

                         ACTIVE     在线日志组,代表实例恢复需要使用此日志组,在此日志组记录的日志中,存在脏块数据,也就是数据块的改变信息记录通过lgwr写入了redo logfile,但是被改变的数据块,并未经过dbwr 写入 datafile文件中,因此实例恢复时,需要前滚应用redo logfile 将数据库块的改变信息,重新构建内存数据块。

                         INACTIVE  离线日志组,代表此日志组中,记录的脏块数据,对应的缓存脏块数据,也已经都被DBWR写入了datafile文件中

     #而 alter system checkpoint;命令为 触发CKPT进程,  进程会触发DBWR写脏块,因此能快速将日志组状态,从active 修改为 inactive状态。  当然,如果有耐心,可以等待dbwr进程自动写脏块,日志组状态也能从active转变为inactive状态

  • 相关阅读:
    java获取文件夹下所有目录
    java下载zip文件
    oracle 递归查询数据
    easyUi刷新 tabs
    jsp引入本地图片
    zabbix web监测设置
    jenkins部署
    ss 异常活动端口查询-std
    logrotate 日志分割
    rsync删除大量小文件
  • 原文地址:https://www.cnblogs.com/lvcha001/p/9180514.html
Copyright © 2011-2022 走看看