티스토리 뷰
회복 (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
'Computer Science > Database' 카테고리의 다른 글
[Database] 병행 제어 (Concurrency Control) / 로킹 (Locking) (0) | 2022.09.03 |
---|---|
[Database] 트랜잭션 격리 수준 / 고립도 (Isolation Level) (0) | 2022.09.03 |
[Database] 트랜잭션(Transaction) / ACID (0) | 2022.08.31 |
[Database] 뷰(View) 개념 및 장단점 (0) | 2022.08.30 |
[Database] 반정규화 / 역정규화 (Denormalization) (0) | 2022.08.29 |
댓글