티스토리 뷰

[원인]

 정전
 CPU 장애나 메모리 손상(curruption), 운영체제 고장과 같은 하드웨어 문제로 인한 서버 이용 불가능
 백그라운드 프로세스(DBWR, LGWR, PMON, SMON) 하나에 장애 발생

[해결방안]

 DBA로부터 어떤 특수한 복구 조치는 불필요
 인스턴스 시작
 데이타베이스가 오픈될 때까지 대기
 데이타베이스 오픈후, 커밋안된 임의의 데이타는 사용자에게 재입력 통보

[인스턴스 복구의 단계]

 

단계 번호

                             

1

비동기화된 파일

비동기화된 파일 발견시 데이타베이스 복구의 필요 여부 결정
종료시 실패와 같은 인스턴스 장애로 유발
메모리가 디스크에 기록되지 않고 종료되기 전에 파일이 동기화되지 않기 때문에 커밋 안된 데이타의 상실 유발

2

▶ Roll-forward

DBWR 커밋된 데이타와 커밋 안된 데이타 모두를 데이타파  일에 기록
Roll-Forward
프로세스의 목적은 로그에 기록된 모든 변경  항을 데이타 블록에 적용하는
  -
롤백 세그먼트는 Roll-forward 단계 동안 채워진다. 리두 로그가 사전, 사후 데이타  미지 모두 저장하기 때문에, 커밋안된 블록이 데이타파일에 있고 롤백 엔트리가 없으면 롤백 세그먼트 엔트리는 추가된다.
    -
리두 로그는 로그 버퍼를 이용하여 적용된다. 사용된 버퍼는 복구를 위해 표시되고, 복구 프로세스에 의해 버퍼가 사용되고 필요없게 때까지 일반 트랜잭션에 관여할 없다.
    -
상태 충돌이 있다면 리두 로그는 읽기전용 데이타파일에만 적용(, 파일 헤더는 파일이 읽기전용이라고 말하고 있지만 제어 파일은 파일을 읽기쓰기로 인식)

3

데이타파일의 커밋된 데이타와 커밋 안된 데이터

Roll-forward 단계가 성공적으로 끝나면, 커밋 안된 데이타가 존재할지 모르지만 모든 커밋된 데이타는 데이타파일에 존재한다.

4

▶ Roll-Back 단계

파일에서 커밋 안된 데이타를 제거하기 위하여, Roll-forward 단계 동안 채워진 롤백  세그먼트가 사용

5

데이타파일의 커밋된 데이터

Roll-forward Roll-back 단계가 끝났을 커밋된 데이타만 디스크에 존재

6

동기화된 데이터파일

모든 데이타파일의 동기화

 

▶ LGWR 오류가 발생한 경우

인스턴스 오류로서 데이타베이스가 강제 종료
데이타베이스 시작시 자동 인스턴스 복구 수행

댓글
댓글쓰기 폼