1장 Recover 원리
출처: 서진수 강사님 oracle 취업 강좌, oracle백업 과 복구 교재. oracle concepts 문서
□ startup 과정 이해
① nomount 실행시 parameter File 확인 Instance 생성
② mount 실행시 Control File ↔ parameter File 확인
③ open 실행시 Control File ↔ Data File , Redo log File 확인
□ Recover 순서
① 백업 받은 파일을 복사한다 → Restore (복원)
② 백업받은 파일의 Log를 확인해서 가장 최신의 Log 상태까지를 확인해서 시간의 순서대로 복구한다.
※ Log 를 찾는 절차
control 파일의 chckpoint SCN(기록되어있는), Data File SCN(실제 저장된) 비교 다르면
online redo logfile 확인, archive 확인 후에 복구를 실시한다.
□ control 파일 (Data file 정보 부분)
① Commit SCN : 여러사용자가 명령한 Commit 중에서 가장 마지막 Commit
② check Point CNT : 테이블 스페이스 별로 내러쓴 횟수 (고유번호)
③ check Point SCN : 지금 까지 한것을 commit 시 disk에 저장 (이때 지정되는 SCN) ★★ (지역번호)
번호가 같아야지 mount 상태에서 open이 가능함
④ Stop SCN : 현재 작업 중 되는것 중 마지막 추가될 SCN (값을 모르기 때문에 무한대로 설정됨) ★
Checkpoint cnt:537 scn: 0x0000.0022fa93 04/13/2015 04:01:01
Stop scn: 0xffff.ffffffff 04/07/2015 11:04:01
※SCN: System Change Number
[Control File 덤프뜨는법]
[Data Fie header 덤프 뜨는법]
□ Mount 단계에서 Open 단계 (복구 단계)
◎ 과정 (instance recovery)
정상 종료: check Point SCN 과 Stop SCN을 동기화를 만들어 주고 데이터 파일을 닫음
비정상 종료: check Point SCN 과 Stop SCN이 다름(Instance Crash)
→ mount 단계에서 datafile을 open 시에 SMON이 control file을 복구를 해줌
→ (그러나)datafile Checkpoint SCN ↔ Control File Stop SCN 비교 정상인 경우 open
→ (비정상인 경우) 필요한 가장 낮은 SCN을 찾으로 Control file 안에 Log File Record를 찾아감
→ datafile이 필요한 SCN을 redo log file 에 Low scn을 확인 후 찾음
→ 가장 낮은 SCN 부터 순서대로 Roll Forward
→ commit 안된 Transction을 undosegment를 확인해서 Roll Backward
※ instance Recovery 가 작동하지 않는 경우 Control file Stop Scn 과 Data file Scn확인
차이나는 부분을 Redo log file & archive log File 찾아 복구한다 (Media Recovery)
◎ 종류
Crash Recovery(Instance Recovery) : online Redo Log File을 사용해서 SMON이 복구한다
★★ Media Recovery : Instance Recovery가 실패 하는 경우 DBA가 수동으로 실행
◎ Instance Recovery 설명
※ 그림에서도 보여주듯이 Redo log를 확인해서 instance를 복구함
◎ Instance Recovery 설명
① 1 차적으로 redo log를 확용해서 데이터를 복구 한다음
② undo segment를 통해서 commit 안된 데이터들을 Rollback 해주어서 고장이 나기 전으로 돌아감