2025. 11. 10. 15:56 오라클
ORA-00392 에러조치
Clone 해서 Retore/Recover 하다가 건드려서 상태 이상해 졌을 떄 복구 방법..
RMAN> ALTER DATABASE OPEN RESETLOGS;
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: failure of sql statement command at 11/10/2025 15:30:19
ORA-00392: log 1 of thread 1 is being cleared, operation not allowed
ORA-00312: online log 1 thread 1: '/oradata/TEST/redo01.log'
SQL> select GROUP#,THREAD#,SEQUENCE#,MEMBERS,ARCHIVED,STATUS,FIRST_CHANGE# from v$log order by first_change# ;
GROUP# THREAD# SEQUENCE# MEMBERS ARC STATUS FIRST_CHANGE#
---------- ---------- ---------- ---------- --- ---------------- -------------
6 1 0 1 YES UNUSED 0
4 1 0 1 YES UNUSED 0
5 1 0 1 YES UNUSED 0
1 1 0 1 NO CLEARING_CURRENT 1901592
방법 1) 이걸로 되면 Happy 하게 작업완료
SQL> alter database clear unarchived logfile group 1 ;
SQL> alter database clear unarchived logfile group 2 ;
SQL> alter database clear unarchived logfile group 3 ;
SQL> alter database open resetlogs;
하지만 방법1로 안될시 방법2)
1. RESETLOGS 옵션과 함께 Contolfile 재생성
SQL> ALTER DATABASE BACKUP CONTROLFILE TO TRACE AS '/tmp/control.sql' resetlogs ;
2. 편집해서 Online Redo log 생성위치 바르게 수정반영 후 저장
vi /tmp/control.sql
GROUP 1 '/oradata/TEST/redo01.log' SIZE 100M BLOCKSIZE 512 <--- old 위치 또는 잘못된 위치 제거
3. nomount 로 기동
SQL> STARTUP FORCE NOMOUNT
SQL> @/tmp/control.sql
4. 가짜로 복구시도
SQL> RECOVER DATABASE USING BACKUP CONTROLFILE UNTIL CANCEL ;
5. RESETLOGS 로 OPEN
SQL> ALTER DATABASE OPEN RESETLOGS ;