[ORACLE] Control file Bakcup&Recovery

반응형

1. Controlfile Backup

#Controlfile Backup
  1. Trace 형식 백업
    alter database backup controlfile to trace as '/home/oracle/con_bak/c1.trc';
    ->
    재생성 스크립트가 생성 된다 .
     
  2. Binary 형식 백업
    alter database backup controlfile to '
    /home/oracle/con_bak/c1.bkg.20220603'; 

 

2. 테스트 시나리오

  • 이중화된 Controlfile 포함하여 전부 유실됬을  

상황1. 운영중 controlfile 삭제됨

1. Controlfile 유실로 인해 정상적인 Shutdown 불가

2. shutdown abort
 
3. startup nomount

4. trace 백업 받아놓은 스크립트에서 필요한 부분 확인

5. controlfile 재생성

6. RECOVER DATABASE USING BACKUP CONTROLFILE
 - 새로 생성된 controlfile이기 때문에 최신 SCN 정보를 찾아야한다.
 

SQL> RECOVER DATABASE USING BACKUP CONTROLFILE
ORA-00279: change 5638120 generated at 06/03/2022 15:39:41 needed for thread 1
ORA-00289: suggestion : /app/archive_log/1_208_1099412553.dbf
ORA-00280: change 5638120 for thread 1 is in sequence #208

7. 
1_208_1099412553.dbf가있는지 확인
- 
없다면, redo log file에 있다는 것이다.


-. select group#, SEQUENCE#, STATUS from v$log;
- 현재 current redolog 확인

-위의 redolog file 확인

set line 250
col member for a50
select * from v$logfile;

8.  
 RECOVER DATABASE USING BACKUP CONTROLFILE
 

Specify log: {<RET>=suggested | filename | AUTO | CANCEL}
/app/oracle/cfgtoollogs/orcl/redo01.log -> SCN 있는 redolog file 적용
Log applied.
Media recovery complete.


9. ALTER DATABASE OPEN RESETLOGS;

10. Controlfile 재생성  후에는 Temp파일 재생성 해줘야한다.

 

상황2.운영중controlfile , redolog 모두 삭제가 된경우 [이 경우 이전백업셋+Archivelog 가지고 복구해야한다.]

 backupset이 없어, 방법이 없는경우

1 ~ 5 번까지는 동일

6. RECOVER DATABASE USING BACKUP CONTROLFILE

SQL> RECOVER DATABASE USING BACKUP CONTROLFILE
ORA-00279: change 5852051 generated at 06/08/2022 14:04:55 needed for thread 1
ORA-00289: suggestion : /app/archive_log/1_1_1106834694.dbf -> Archive 파일이 존재하지 않아 redo에서 찾아야한다.
ORA-00280: change 5852051 for thread 1 is in sequence #1

reolog도 삭제가 된 상황이다 .

SQL> alter database open resetlogs;
alter database open resetlogs
*
ERROR at line 1:
ORA-01113: file 1 needs media recovery
ORA-01110: data file 1: '/app/oracle/cfgtoollogs/orcl/system01.dbf'

위 에러 메세지는 DB가 종료될 때 shutdown abort로 비정상 종료되어 데이터 파일끼리 checkpoint 정보가 동기화 되지 않아서 
resetlog 옵션으로 open할 수 없으니 복구하라는 내용이다. 그러나 현재 모든 redo log file이 삭제되었으므로 복구할 수 없다. 

이럴경우 강제로 datafile 끼리 checkpoint정보를 동기화 시켜 open 하는 hidden parameter를 사용해야 한다.
단, 이 parameter는 위험하기 때문에 권장하지않고 그 결과에 책임지지도 않는다.

7. shutdown immediate

8. pfile 에 Hidden parameter 적용
_allow_resetlogs_corruption=true

9. startup pfile='/app/oracle/product/12/dbs/initorcl.ora';



 

 



 

반응형

'Database > Oracle' 카테고리의 다른 글

[ORACLE] RMAN 명령어  (0) 2022.06.13
[ORACLE] Full Online backup & Recovery  (0) 2022.06.09
[ORACLE] Online backup Script example  (0) 2022.06.09
[ORACLE] SCN  (0) 2022.06.03
[ORACLE] Schduer job 명령어  (0) 2022.04.28