티스토리 뷰

회복 (Recovery)

: 트랜잭션 처리를 수행하는 도중 장애 발생으로 데이터베이스 손상시 이전 상태로 복구

 

장애 유형

실행 장애: 무결성 규정 위반 등 연산이 실패

트랜잭션 장애: 트랜잭션 내부의 비정상적인 상황으로 프로그램 실행이 중지

시스템 장애: 하드웨어 오동작

미디어 장애: 저장장치인 디스크 손상으로 데이터베이스의 물리적 손상

 

 

Redo, Undo

Redo

장애 발생 시점 기준 이미 완료된 트랜잭션에 대해서 로그 파일을 읽어서 복구

변경되는 내용은 로그 파일에 기록

로그 레코드 순차적 실행

 

Undo

장애 발생진행중이던 트랜잭션은 수행 이전 상태로 복구

장애가 발생하면 변경된 모든 내용 취소

로그 레코드 역순 실행

 

 

회복 기법

1. 로그 기반 회복 기법

- 지연 갱신 (Deferred Update)

트랜잭션이 부분 완료(partially committed)될 때까지 모든 갱신 연산을 지연

DB에 수행한 변경을 로그에 전부 기록하여 한번에 실행 (트랜잭션의 원자성 보장 -> UNDO 필요X)

회복시 REDO 사용

 

- 즉시 갱신 (Immediate Update)

트랜잭션 실행 중 발생하는 변경 내용을 즉시 반영

회복시 REDO, UNDO 모두 수행

 

2. 검사점 기법 (Check point)

트랜잭션의 완료 시점에 따라,

검사시점 이전에 완료: No Operation

검사시점과 장애시점 사이에 완료: REDO

장애시점 이후 완료 (장애시점에 진행 중): UNDO

No Operation | 검사시점 | REDO | 장애시점 | UNDO

 

 

댓글