Backup/Noarchive Log Mode

SYSTEM TABLESPACE 속한 데이터 파일이 손상되었을 경우(backup 이후에 REDO 가 없을 경우)

잇꼬 2024. 1. 11. 16:28
728x90
반응형
SMALL

# redo log 정보 확인

select STATUS, SEQUENCE#, FIRST_CHANGE#, NEXT_CHANGE# from v$log;

 

# log switch 발생*4번 (여러번 강제로 발생시키기!)

alter system switch logfile;


# 현재 사용중인 redo group에 대한 redo file의 상태와 관련된 정보 확인

select STATUS, SEQUENCE#, FIRST_CHANGE#, NEXT_CHANGE# from v$log;

=> CURRENT, SEQUENCE 번호 확인


# 장애 발생 #
#) data file 삭제 후 checkpoint 강제 발생 

! rm /u01/app/oracle/oradata/ora11g/system01.dbf
alter system checkpoint;


#) 정상적인 종료 후 DB 올리기

=> DB 올리는 과정에서 오류 발생

shutdown immediate
startup

 

#) OS 에서 copy 하기

SQL> !
[oracle1@oracle ~]$ cd backup/noarch/20240110/
cp -av backup/noacrch/20240110/system01.dbf /u01/app/oracle/oradata/ora11g/
[oracle1@oracle 20240110]$ cp -av backup/noacrch/20240110/system01.dbf /u01/app/oracle/oradata/ora11g/
[oracle1@oracle 20240110]$ exit
exit


#) 완전 복구 실패
- 마지막 백업 이후 변경 이력 정보가 없어서 완전복구는 할 수 없다.

recover database;


# 완전 복구가 실패되었을 경우, 불안전한 복구 방식을 수행
- 모든 datafile, control file, redo log file, temp file을 restore 해야 한다.

 

#) DB 불안전한 종료

shutdown abort

 

SQL> !
[oracle1@oracle ~]$ cd backup/noarch/20240110/
[oracle1@oracle 20240110]$ cp -av *.* /u01/app/oracle/oradata/ora11g/
‘control01.ctl’ -> ‘/u01/app/oracle/oradata/ora11g/control01.ctl’
‘example01.dbf’ -> ‘/u01/app/oracle/oradata/ora11g/example01.dbf’
‘redo07.log’ -> ‘/u01/app/oracle/oradata/ora11g/redo07.log’
‘redo08.log’ -> ‘/u01/app/oracle/oradata/ora11g/redo08.log’
‘redo09.log’ -> ‘/u01/app/oracle/oradata/ora11g/redo09.log’
‘sysaux01.dbf’ -> ‘/u01/app/oracle/oradata/ora11g/sysaux01.dbf’
‘system01.dbf’ -> ‘/u01/app/oracle/oradata/ora11g/system01.dbf’
‘temp01.dbf’ -> ‘/u01/app/oracle/oradata/ora11g/temp01.dbf’
‘undotbs01.dbf’ -> ‘/u01/app/oracle/oradata/ora11g/undotbs01.dbf’
‘users01.dbf’ -> ‘/u01/app/oracle/oradata/ora11g/users01.dbf’
[oracle1@oracle 20240110]$ exit
exit

#) DB 올리기

startup


#) redo 정보 확인

select * from v$log;

 

#) 복구 완료

 

728x90
반응형
LIST