Recovery 원리

Oracle 시작 단계

 

NOMOUNT

· 서버 프로세스가 PFILE(SPFILE)에 지정된 대로 INSTANCE 생성

 

MOUNT

· CKPT 프로세스가 Control File을 읽고 일시 lock 설정

· Control File Header 정보 검증 (Control File 이상 여부 확인),

    -> MOUNTID 계산 값 Control File 저장

· “Successful mount of redo thread”

· “Database mounted...”

 

OPEN

· Data File Header 정보와 Control File Checkpoint SCN 정보 비교

 

Controlfile dump

- Control FileBinary File의 한 종류이므로 OS 명령어로 내용을 직접 확인할 수 없음

- dump 작업을 통해 Control File 내용 확인 가능

    * Control 파일은 Binary 파일 이므로 확인할 수 없어 dump 로 내려서 확인하기 위해 수행

 

SQL> show parameter user_dump_dest; ##dump 파일 위치 확인

SQL> alter session set tracefile_identifier='AAA'; ## 확장자 지정

SQL> oradebug setmypid; ## 현재 process id로 수행

SQL> oradebug dump controlf 3; ## control 파일 3dump

# vi/........./testdb_ora_45613110AAA.trc

     -> dump 내용 확인

 

 Checkpoint SCNStop SCN

- Checkpoint SCN은 현재까지 저장 완료된 SCN

- Stop SCN은 신규로 추가되는 데이터의 마지막 SCN을 의미

- DBopen 상태일 경우 마지막 SCN을 알 수 없으므로 무한대(0xffff.fffffff)로 설정

- DB가 정상 종료되거나 offline이 되는 경우 Checkpoint를 발생시켜 두 SCN을 일치시킴

 

 

Shutdown immediate

SQL> startup mount ## mount 단계

SQL> alter session set tracefile_identifier=BBB'; ## 확장자 지정

SQL> oradebug setmypid; ## 현재 process id로 수행

SQL> oradebug dump controlf 3; ## control 파일 3dump

 

 

 

Shutdown abort

SQL> startup mount ## mount 단계

SQL> alter session set tracefile_identifier=BBB'; ## 확장자 지정

SQL> oradebug setmypid; ## 현재 process id로 수행

SQL> oradebug dump controlf 3; ## control 파일 3dump

 

 SMONRedologfile을 이용해 Roll forward,backward를 이용해 scn을 맞춤

복구 과정 상세

1. Controlfile 내의 Checkpoint cntStop SCN 번호가 같은지 확인하고, 다르다면 Instance Crash로 판단,

Instance Recovery 수행 결정

 

2. Checkpoint cntStop SCN 번호가 같을 경우 실제 Datafileheader에 있는 Checkpoint SCNControl File 안에 있는

Stop SCN 번호와 같은지 비교

--> SCN정보가 같아도 control 파일과 datafilescn 정보가 다를 수 있어 바로 open 되지 않음

 

3. 복구가 필요하다고 판단되면 Datafile에 부족한 SCN중에 가장 낮은 SCN을 확인 후 Control File 안에 있는 Redo log file을 찾아감

 

4. 적당한 Redo log File을 찾게 되면 낮은 SCN 번호부터 순차적으로 Roll Forwared 시킴

 

5. Roll Forward가 끝나면 Undo 데이터를 뒤져서 commit 되지 않은 데이터는 다시 Roll Backward를 진행해서 복구를 완료합니다.

 

6. 마지막 SCN을 기록하면서 동기화 시키고 DB 정상 open

* checkpoint scn stop scn이 같다고 무조건 오픈되지 않음 ( datafile과도 비교해야함 )

 

'Study Note > Database' 카테고리의 다른 글

Cold Backup  (0) 2016.02.26
No Archive log / Archive log  (0) 2016.02.26
파티션 테이블(partition table) - 인덱스(index)  (0) 2016.02.25
SQL TUNNING - 1  (0) 2016.02.24
파티션 테이블(partition table)  (0) 2016.02.24

+ Recent posts