重庆思庄Oracle、Redhat认证学习论坛

标题: RAC恢复的单实例数据库删除日志组时遇到ORA-01567 [打印本页]

作者: jiawang    时间: 2022-9-15 15:07
标题: RAC恢复的单实例数据库删除日志组时遇到ORA-01567
本帖最后由 jiawang 于 2022-9-15 15:10 编辑

恢复测试数据库时遇到了日志组不让删的情况。
因为这个测试数据库是从RAC克隆而来,每个节点都有独立的REDO LOG FILE,变成单实例后,
只有节点1的REDO LOG FILE再用,那就把节点2的删掉吧,再删节点2的REDO LOG FILE时,遇到了ORA-01567错误。

SQL> select b.thread#,a.group#,a.member,bytes/1024/1024,b.members from v$logfile a,v$log b where a.group#=b.group#

THREAD#     GROUP# MEMBER                                                                           BYTES/1024/1024    MEMBERS
---------- ---------- -------------------------------------------------------------------------------- --------------- ----------
       1          1 /u01/app/oracle/fast_recovery_area/ORCL/onlinelog/o1_mf_1_kk0nkxxb_.log                      500          1
        1          3 /u01/app/oracle/fast_recovery_area/ORCL/onlinelog/o1_mf_3_kk0nkyjm_.log                      500          1
        2         13 /u01/app/oracle/fast_recovery_area/ORCL/onlinelog/o1_mf_13_kk0nkzw0_.log                     500          1
       2         16 /u01/app/oracle/fast_recovery_area/ORCL/onlinelog/o1_mf_16_kk0nl2xt_.log                     500          1

SQL> select group#,thread#,sequence#,members,status from v$log;

GROUP#    THREAD#  SEQUENCE#    MEMBERS STATUS

---------- ---------- ---------- ---------- ----------------
        1          1          7          1 INACTIVE
         3          1          8          1 CURRENT
       13          2          1          1 INACTIVE
         16          2          0          1 UNUSED

尝试直接删除THREAD=2对应的日志文件组13,16
SQL> alter database drop logfile group 13;
alter database drop logfile group 13
*
ERROR at line 1:
ORA-01567: dropping log 1 would leave less than 2 log files for instance orcl (thread 2)
ORA-00312: online log 13 thread 2: '/u01/app/oracle/fast_recovery_area/ORCL/onlinelog/o1_mf_13_kk0nkzw0_.log'

在节点2的REDO LOG FILE就剩2个的时候,就不让删了,这是REDO的机制,每个节点不能少于2个日志组,如果少于2个日志无法切换了。

解决方法很简单,把节点2给踢出去就行了。
SQL> alter database disable THREAD 2;
Database altered.
SQL> alter database drop logfile group 13;
Database altered.
SQL> alter database drop logfile group 16;
Database altered.

然后还得去操作系统上把这些删除掉的REDO LOG FILE删掉。







欢迎光临 重庆思庄Oracle、Redhat认证学习论坛 (http://bbs.cqsztech.com/) Powered by Discuz! X3.2