Print
카테고리: [ Oracle Database ]
조회수: 3873

지난 글에서 오라클에는 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 발생 시키면

장애 발생됨