IT기술/Oracle

03 Recovery 원리

dobbby 2013. 12. 17. 11:12
반응형

03 Recovery 원리


Oracle Startup 과정

no mount    server process 가 parameter file (pfile /spfile) 을 PGA 로 읽어 들여서 해당 parameter file 에서 지정한 대로 instance 를 생성하는 단계

mount        parameter file 에 기록되어 있는 위치에서 control file 을 읽어서 장애를 복구하거나, 

    유지관리작업 (rename file, drop file) 등의 작업을 하는 단계

1. CKPT process 가 모든 control file 을 읽고 일시적으로 lock 을 설정

2. control file header 정보를 검증해서 control file 에 이상이 없는지 확인하고, mountID 를 계산해서 control file 에 저장

3. parameter file 의 database name 과 control file 의 DB name 이 동일한지 검사

4. 위 과정까지 이상이 없으면 alert log file 에 "Sucessful mount of redo Thread" , "Database mounted" 라는 메시지 기록

open           Data file header 부분의 정보와 control file 의 정보를 서로 비교해서 장애 유무를 판단 (Checkpoint SCN 정보 확인) 


Recovery 원리

SQL> oradebug setmypid ;

SQL> oradebug dump controlf 3 ;

SQL> !

$ pwd

/home/oracle/admin/testdb/udump/testdb_ora_19226.trc

$ ls

testdb_ora_19226.trc

$ vi 

...

DB NAME "TESTDB"

...

Database checkpoint: Thread=1 scn: 0x0000.001720d1        ← DB 전체의 checkpoint 

...

Checkpointed at scn: 0x0000......

...

Low scn: 0x.0000...

Next scn: 0x0000...

...

Checkpoint cnt: 333 scn: 0x0000...

Stop scn: 0xffff.ffffffff 02/27/2010 08:20:32        ← ffff 란 현재 사용중이란 의미

오라클은 DB 가 open 상태이면 Stop scn 을 무한대 (0xffff.ffffffff) 로 설정하고 DB 가 종료되거나 offline 되면 

checkpoint 를 발생시켜 checkpoint scn 과 stop scn 을 동일하게 만들고 해당 데이터 파일을 닫습니다.

정상적으로 종료된 파일은 Checkpoint scn 과 Stop scn 이 동일합니다.

이 원리를 이용해 데이터 파일의 이상 유무를 확인하는 것입니다.


control file 의 SCN 정보와 data file 의 SCN 정보를 비교해서 차이나는 부분을 

Redo log file 이나 Archive log file 에서 찾아서 복구한다.


Crash Recovery    Instance Recovery 라고도 하는데 운영 중이던 Database 가 비정상적으로 종료된 것을 의미합니다.

   startup 시에 automatically 하게 recovery 하는 것을 의미하며 online Redo log file 만 사용됩니다.

Media Recovery    file 삭제나 disk fail 등의 이유로 Instance Recovery 가 실패할 경우 DBA 가 수동으로 백업 파일 등을 복원한 후

   Online Redo log file 과 archived redo log file 등을 사용하여 recovery 해야 하는데 이것을 Media Recovery 라고 합니다.

반응형