Backup/RMAN

control file이 장애 났을 경우 ⓐ

잇꼬 2024. 1. 29. 13:38
728x90
반응형
SMALL

#) rman 접속

[oracle1@oracle ~]$ rman target /


RMAN> show all;


#) 원래 상태로 변경
RMAN> CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK CLEAR;


#) 확인 
RMAN> show all;


#) backup 확인
RMAN> list backup;

#) backup 삭제 
RMAN> delete backupset;


#) backup 다시 받기 
RMAN> backup as compressed backupset database;


#) backup 확인 
RMAN> list backup;


#) 아카이브 확인 

=> 백업 받고 나서 이전 아카이브 파일 필요없으니 삭제해야 한다.
RMAN> report obsolete;


#) 아카이브 지우기 

=> 백업 받고 나서 이전 아카이브 파일 필요없으니 삭제해야 한다.
RMAN> delete obsolete;


#) 지워졌는지 확인
RMAN> report obsolete;


#) redo log 정보 확인

SELECT a.group#, b.sequence#, a.member, b.bytes/1024/1024 MB, b.archived, b.status, b.first_time, b.first_change#, b.next_change#
FROM v$logfile a, v$log b
WHERE a.group# = b.group#
ORDER BY 1;


#) control file 확인

select name from v$controlfile;


#) control file 장애 유발

! rm /u01/app/oracle/oradata/ora11g/control01.ctl
! ls /u01/app/oracle/oradata/ora11g/control01.ctl


#) 체크포인트 유발

alter system checkpoint;


#) DB 내리기
=> 오류발생

shutdown immediate


#) 비정상적인 종료 
SYS@ora11g> shutdown abort


#) rman으로 재접속 
RMAN> exit
[oracle1@oracle ~]$ rman target /


#) nomount 단계까지 올리기
RMAN> startup nomount


#) backup 확인해보기
=> control file(backup)에서 확인할 수 있음.
RMAN> list backup;


#) 복구 하기
최근에 backup 정보 중에 control file 위치 check 하기
/u01/app/oracle/fast_recovery_area/ORA11G/autobackup/2024_01_29/o1_mf_s_1159523112_lvfx8s8l_.bkp

RMAN> restore controlfile from '/u01/app/oracle/fast_recovery_area/ORA11G/autobackup/2024_01_29/o1_mf_s_1159523112_lvfx8s8l_.bkp';


#) DB mount 단계로 올리기
RMAN>  alter database mount;

 

#)  recover 하기
=> 과거 scn번호와 맞춰주는 작업이 필요하다.
RMAN> recover database;


#) DB open 하기
=> control file이 깨지면 resetlogs로 open해야 한다!
=> 과거의 backup본은 의미가 없다!

RMAN> alter database open resetlogs;


#) backup 다시 받기
backup as compressed backupset database;
=> 과거의 backup본은 의미가 없다!
RMAN> backup as compressed backupset database;


#) backup 본 확인

RMAN> list backup;


#) 정책상 필요없는 아카이브 파일 확인 및 삭제
RMAN> report obsolete;


RMAN> delete obsolete;


#) 다시 확인하기
RMAN> report obsolete;
=> crosscheck 해야한다!


#1) croeecheck 아카이브 파일
RMAN> crosscheck archivelog all;


#2) 확인
RMAN> list expired archivelog all;


#3) 지우기
RMAN> delete expired archivelog all;


#4) 지워졌는지 다시 확인
RMAN> list expired archivelog all;


#5) 최종적으로 아카이브 파일 확인 
RMAN> report obsolete;


#) oracle 확인
#1) 재접속 
SYS@ora11g> conn / as sysdba


#2) redo log 정보 확인

SELECT a.group#, b.sequence#, a.member, b.bytes/1024/1024 MB, b.archived, b.status, b.first_time, b.first_change#, b.next_change#
FROM v$logfile a, v$log b
WHERE a.group# = b.group#
ORDER BY 1;




728x90
반응형
LIST