글
Chap 14. Recovery 원리
1. Recovery 단계
- DB 에서 startup 이나 recover 명령어를 입력했을 때 서버 프로세스는 먼저 control file 을 읽어서 문제가 있는지 없는지 확인한다. 아래는 Oracle 이 startup 되는 단계이다.
1) nomount
서버 프로세스가 parameter file (pfile, / spfile) 을 PGA 로 읽어와서 해당 parameter file 에 지정한 대로 instance 를 생성하는 단계이다.
2) mount
여기서는 parameter file 에 기록되어 있는 위치에서 control file 을 읽어서 장애를 복구하거나, 유지 관리 작업 (rename file, drop file 등등) 들을 하는 단계이다. 자세한 순서는 아래와 같다.
* CKPT 프로세스가 모든 control file 을 읽고 일시적으로 lock 설정을 한다.
* control file header 정보를 확인해서 이상이 없는지 체크한다. 그리고 mountID 를 계산해서 control file 에 저장한다.
* Parameter file 의 database name 과 control file 의 DB name 이 동일한지 체크한다.
* 위 과정까지 이상이 없다면 alert log file 에 "Successful mount of redo Thread" 라는 메세지를 기록한 후 "Database mounted~~" 라는 메세지를 기록한다.
3) open
Data file header 부분의 정보와 control file 의 정보를 서로 비교해서 장애 유무를 판단한다. 이때 사용되는 것이 checkpoint SCN 정보이다. 이 SCN 이 이상이 없을 경우 DB는 문제가 없다고 판단하고 정상 open 된다.
2. Recovery 원리
1) Control file 내의 Data file records 부분의 checkpoint cnt 부분의 숫자를 가지고 data file의 checkpoint cnt 번호와 동일한지 비교한다. 만약 이 부분이 문제가 없다면 다음 단계를 진행한다.
2) 각 data file 의 header 에 있는 checkpoint SCN 이 control file 안에 있는 stop scn 번호와 동일한지 비교 후. 모두 일치 하면 복구할 필요가 없지만 불일치 하면 복구를 시도한다.
3) 복구가 필요할 경우, data file 에 부족한 scn 중에서 가장 낮은 scn 이 몇 번인지 확인후 control file 안에 있는 log file records 를 찾아간다. data file 과 control file 에서 차이나는 scn 부분을 redo log file 을 뒤져서 low scn 부분을 확인, 필요한 내용이 들어있는 파일을 찾아낸다. 그리고 그 경로로 찾아가서 복구해야 하는 내용을 읽어서 필요한 로그 파일을 순차적으로 적용시킨다.
4) 적당한 redo log file 을 찾으면 가장 낮은 scn 번호부터 roll forward 한다.
5) roll forward 가 끝나면 commit 이 수행되지 않은 transaction 을 찾기위해 undo$ 딕셔너리를 찾아본다. 거기서 active 한 undo segment 를 찾고 commit 안된 데이터를 roll backward 한다.
3. Recovery 종류
1) Crash Recovery (Instance recovery)
- 운영 중이던 DB 가 비 정상적으로 종료된 것을 startup 시에 automatically 하게 recovery 하는 것을 의미한다.
- 이 때는 online redo log file 만 사용된다.
2) Media Recovery
- 위의 Instance recovery 시에 file 삭제나 disk fail 등의 이유로 Instance recovery 가 실패할 경우 DBA 가 수동으로 백업 파일 등을 복원한 후 online redo log file 과 archive redo log fie 등을 사용하여 recovery 해야 하는데 이것을 Media Recovery 라고 한다.
'Oracle > Admin' 카테고리의 다른 글
[Oracle Admin] Chap 16. Control File 장애 복구 (0) | 2013.09.29 |
---|---|
[Oracle Admin] Chap 15. Parameter File 장애 복구 (0) | 2013.09.26 |
[Oracle Admin] Chap 13. Oracle Backup (0) | 2013.09.22 |
[Oracle Admin] Chap 12. Archive/No Archive log mode (0) | 2013.09.22 |
[Oracle Admin] Chap 11. DBMS_JOB & DBMS_SCHEDULER (0) | 2013.09.18 |