DB의 회복
redo와 undo 연산이 있다. redo는 재실행, undo는 취소이다.
redo: 최근에 저장한 DB 복사본을 가져온 후, 로그를 이용하여 모든 연산 재실행해 복구.
undo: 예전 상태로 연산 모두 취소 후 복구.
로그 회복 기법
- 지연 갱신 : 트랜잭션이 커밋까지 진행 후 완료.
트랜잭션 수행 중 장애 -> 아무것도 안함. 로그내용만 무시하고 버림.(DB 값 변하지 않았으므로)
트랜잭션 모두 수행 후 Commit 된 상태에서 장애 -> redo
- 즉시 갱신 : 진행 상태 중 변경 연산 결과 그대로 DB 반영. 로그 파일 기록 후 즉시 output()
트랜잭션 수행 중 장애(커밋 x) -> undo
트랜잭션 모두 수행 후 Commit 된 상태 -> redo
검사 시점 회복
체크포인트를 만들어서, 체크포인트 이전까지 진행한 작업 사항에 대해 다음의 작업들을 수행한다.
1. 로그 버퍼에 있는 모든 로그 레코드 디스크에 있는 로그 파일에 기록
2. DB 버퍼에 있는 모든 변경 연산 결과 디스크의 DB로 반영
3. 검사 시점 로그 레코드 로그 파일에 기록. -> 언제나 로그가 먼저 내려감!!
장애 발생 시,
체크포인트 이후의 트랜잭션 -> redo
작업 범위 : 마지막 체크포인트부터 장애 직전까지
'학교 공부' 카테고리의 다른 글
[데이터베이스] Index와 B+Tree (0) | 2025.06.12 |
---|---|
[운영체제] 파일 시스템 (1) (3) | 2025.06.08 |
36장~37장 I/O Devices와 Hard_Disk_Drives (0) | 2025.05.13 |