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

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1458|回复: 0
打印 上一主题 下一主题

[Oracle] RAC恢复的单实例数据库删除日志组时遇到ORA-01567

[复制链接]
跳转到指定楼层
楼主
发表于 2022-9-15 15:07:51 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
本帖最后由 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删掉。


分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 支持支持 反对反对
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|手机版|小黑屋|重庆思庄Oracle、Redhat认证学习论坛 ( 渝ICP备12004239号-4 )

GMT+8, 2024-11-17 04:05 , Processed in 0.100360 second(s), 21 queries .

重庆思庄学习中心论坛-重庆思庄科技有限公司论坛

© 2001-2020

快速回复 返回顶部 返回列表