Learning
토픽 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, 트랜잭션 로그