SYSTEM FAILURE RECOVERY

장애 순간의 변경은 세 상태로 갈리고, 복구 작업도 거기서 결정됩니다.

핵심은 단순합니다. COMMIT 했는가, 그리고 데이터 파일까지 기록됐는가. 이 두 질문의 조합만 보면 Redo, Undo, 복구 불필요가 바로 나뉩니다.

공통 전제
시스템 장애가 나면, 메모리에만 남아 있던 변경이 어떤 확정 상태였는지 먼저 확인합니다.
장애 직전 변경 메모리에는 있었음 데이터 파일 반영 여부는 상태마다 다름
복구 판단 기준
1. COMMIT 여부 트랜잭션이 끝났다면 결과를 살려야 합니다.
2. 데이터 파일 반영 여부 아직 파일에 없다면 로그를 다시 적용해야 합니다.
STATE 1
커밋 완료 +
디스크 미반영
COMMIT
이미 끝난 트랜잭션
데이터 파일
변경이 아직 기록되지 않음
복구 작업
Redo
로그를 다시 적용해, 커밋된 결과를 디스크 상태와 맞춥니다.
STATE 2
커밋 미완료
COMMIT
아직 끝나지 않은 트랜잭션
데이터 파일
중간 변경일 수 있으므로 확정 불가
복구 작업
Undo
완료되지 않은 변경을 되돌려 일관성을 회복합니다.
STATE 3
커밋 완료 +
디스크 반영
COMMIT
이미 정상 종료됨
데이터 파일
변경이 이미 안전하게 기록됨
복구 작업
복구 불필요
데이터 파일이 최신 상태이므로 그대로 사용하면 됩니다.
정리: 시스템 장애 복구는 모든 변경을 다시 처리하는 작업이 아니라, 끝난 것은 살리고, 끝나지 않은 것은 지우고, 이미 기록된 것은 건드리지 않는 분기 작업입니다.
COMMIT + 디스크 반영 여부로 판단