토픽 168 / 201·NewSQL 및 특수 목적 DB
Redo/Undo 로그
Redo/Undo 로그
데이터베이스 트랜잭션의 지속성(Durability)과 원자성(Atomicity)을 보장하기 위한 로그로, Redo 로그는 커밋된 변경사항 재적용, Undo 로그는 미완료 트랜잭션 롤백에 사용
목적: 장애 복구, 트랜잭션 롤백, ACID 보장, 데이터 일관성
Redo 로그 (복구 로그)
- •커밋된 트랜잭션의 변경사항 기록
- •장애 복구 시 데이터 페이지에 재적용 (Forward Recovery)
- •변경 후 값(After Image) 저장
- •WAL(Write-Ahead Logging)의 핵심
- •용도: 시스템 장애 후 커밋된 트랜잭션 복구
Undo 로그 (롤백 로그)
- •변경 전 값(Before Image) 저장
- •트랜잭션 롤백 시 원래 상태로 복원
- •MVCC에서 과거 버전 제공 (Consistent Read)
- •용도: 롤백, 장애 복구 시 미완료 트랜잭션 취소
장애 복구 프로세스 (ARIES)
DBMS별 구현: Oracle(Redo Log+Undo Tablespace), MySQL InnoDB(ib_logfile+Undo), PostgreSQL(WAL+MVCC), SQL Server(통합 Transaction Log)
장점: ACID 보장, 신뢰성 있는 복구, MVCC 지원
단점: 디스크 공간 필요, I/O 오버헤드, 관리 필요
적용사례: 모든 트랜잭션 DBMS, 장애 복구, 롤백 처리
비교: Redo(After Image/Forward Recovery) vs Undo(Before Image/Backward Recovery/MVCC)
연관: WAL, ACID, 장애 복구, MVCC, 트랜잭션 로그