지난 글에서 오라클에는 archive mode 와 no archive mode 가 있다고 하였습니다.
Archive mode의 경우, 복구 방법은 완전복구와 불완전 복구가 있는데
이번 글에서는 완전복구에 대해 간단하게 알아보도록 하겠습니다.
-- 완전복구
위의 사진처럼 SCN 100의 test01.dbf 데이터파일을 리두 로그, 아카이브 로그를
이용하여 장애가 발생하기 직전 시점 까지 데이터를 모두 복구해내는 것을 의미함.
*장애 상황
사용해야 하는 데이터파일이 삭제됨, 백업파일 존재, DB종료 없이 복구 필요
-- 복구 절차
1)아카이브 모드 확인
2)데이터 파일 백업
* file 에 물리적인 I/O가 발생하고 있을 때 이동/복사를 하면 데이터 손실의 위험이 높음
백업 받을 땐
1) DB shutdown 후
2) tablespace offline
3) hot backup
-위 처럼 begin backup 을 명시하면 hot backup이 시작되는데
begin backup ~ end backup 사이의 데이터는
리두로그 혹은 아카이브 로그로 떨어지기 때문에 중단 없이 백업을 할 수 있음
3)작업 및 장애 발생
- recovery_test.dbf 가 삭제 되었지만 insert 작업이 가능한 이유는
data를 바로 datafile에 저장하는 게 아니라 redo log buffer, data buffer cache 에 넣기 때문,
data file로 data를 저장하는 과정인
direct path 로 data를 insert 하거나 checkpoint 발생 시 장애 발생함
4)alert log에서 장애확인
alter system checkpoint 명령어로 buffer cachec의 data를 내려 쓰니
recovery_test 파일을 찾을 수 없다는 에러 발생
백그라운드 프로세스인 CKPT 가 죽으면서 DB가 죽어버림
5)백업파일 복원 후 복구
위에서 지운 recovery_test.dbf 파일을 못찾는 다는 메시지
백업본 복구 후 RECOVER 작업 수행
지난 글들에서 살펴보았듯 controlfile의 checkpoint scn 값과 datafile 의 scn값을 비교하여
부족한 부분 만큼을 redo log, archive log에서 가져옴
6)조회
direct path 로 data를 insert 하거나 checkpoint 발생 시키면
장애 발생됨