rac更改日志组配置和ora-01567

gv$log视图中的字段含义

inst_id :实例号,仅表示这条记录从哪来的

GROUP# :日志组号,每个日志组一个号,唯一

THREAD# :日志组的实例号,表示这个日志组是哪个实例在使用

bytes:大小

MEMBERS:成员数,在创建时指定文件路径和文件名,会自动识别成员数,是redo的冗余

STATUS:状态,active,inactive,unused,current。只有inactive和unused状态能drop,其中unuesd表示一次没用过

比如我下面这个redo配置

 INST_ID GROUP#  THREAD#  MB MEMBERS STATUS
---------- ---------- ---------- ---------- ---------- --------------------------------
         1          1          1        500          2 INACTIVE
         4          1          1        500          2 INACTIVE
         3          1          1        500          2 INACTIVE
         2          1          1        500          2 INACTIVE
         2         10          1        500          2 ACTIVE
         4         10          1        500          2 ACTIVE
         3         10          1        500          2 ACTIVE
         1         10          1        500          2 ACTIVE
         3         11          1        500          2 CURRENT
         1         11          1        500          2 CURRENT
         2         11          1        500          2 CURRENT
         4         11          1        500          2 CURRENT
         3          2          2        500          2 CURRENT
         2          2          2        500          2 CURRENT
         4          2          2        500          2 CURRENT
         1          2          2        500          2 CURRENT
         3          3          2        500          2 INACTIVE
         4          3          2        500          2 INACTIVE
         2          3          2        500          2 INACTIVE
         1          3          2        500          2 INACTIVE
         3         12          2        500          2 ACTIVE
         1         12          2        500          2 ACTIVE
         2         12          2        500          2 ACTIVE
         4         12          2        500          2 ACTIVE
         2          5          3        500          2 CURRENT
         1          5          3        500          2 CURRENT
         3          5          3        500          2 CURRENT
         4          5          3        500          2 CURRENT
         3          6          3        500          2 ACTIVE
         4          6          3        500          2 ACTIVE
         2          6          3        500          2 ACTIVE
         1          6          3        500          2 ACTIVE
         4          9          3        500          2 INACTIVE
         3          9          3        500          2 INACTIVE
         1          9          3        500          2 INACTIVE
         2          9          3        500          2 INACTIVE
         4          4          4        500          2 ACTIVE
         1          4          4        500          2 ACTIVE
         2          4          4        500          2 ACTIVE
         3          4          4        500          2 ACTIVE
         1          7          4        500          2 CURRENT
         3          7          4        500          2 CURRENT
         2          7          4        500          2 CURRENT
         4          7          4        500          2 CURRENT
         1          8          4        500          2 ACTIVE
         2          8          4        500          2 ACTIVE
         4          8          4        500          2 ACTIVE
         3          8          4        500          2 ACTIVE


48 rows selected.

上面内容很多,但还是很好理解的

数据库一共4个实例,每个实例3个日志组,每个组2个成员,每个成员的大小均为500m。所有应该所有3*4=12条记录

每个实例有自己独立的redo来写日志,thread#就是每个实例的一个编号,区分着每个实例上的日志。而Gv$log视图中的INST_ID只是表明该行数据来自哪个实例上的v$log视图,与thread#的意义是不同的。


ora-01567:

SQL>     alter database drop logfile group 6;
    alter database drop logfile group 6
*
ERROR at line 1:
ORA-01567: dropping log 6 would leave less than 2 log files for instance xscsmp3 (thread 3)
ORA-00312: online log 6 thread 3: '+DATADG/XSCSMP/ONLINELOG/group_6.807.963760065'

ORA-00312: online log 6 thread 3: '+FRADG/XSCSMP/ONLINELOG/group_6.1481.963760065'

虽然redo的状态为inactive,但是仍然无法删除redo,因为每个thread(实例)都至少需要2个日志组,所有必须要先对该thread添加了日志组(日志组大于等于3)并且group 6为inactive的时候才能drop 日志组。

你可以开2个窗口

1个窗口 alter system switch logfile

另一个窗口查询gv$log

select INST_ID,group#,thread#,bytes/1024/1024 mb,members,status from  gv$log order by 3,2

查看那个日志组状态是否是inactive

猜你喜欢

转载自blog.csdn.net/qq_40687433/article/details/79491954