[DB] Redo 와 Undo

최민석·2021년 6월 26일
1

데이터 베이스의 안전 장치

Redo 란?

데이터파일, 컨트롤 파일에 가해지는 모든 변경사항을 Redo 에 기록한다.
즉 Redo는 로그파일이며, 물리적 천재지변, 위협요소 등에 일어난 데이터 복구등에 사용된다.

Redo 의 3가지 목적

  • Database Recovery
    • Redo로그는 물리적으로 디스크가 꺠지는 등의 Media Fail발생 시 데이터베이스를 복구한다. Media Recovery 라고도 한다.
  • Cache Recovery
    • 사용자가 Update등의 작업시 버퍼캐시에는 작업이 완료되었지만 디스크 상의 파일에는 적용되지 않은 상태에서 인스턴스가 비정상 종료될때,
      Redo 로그를 이용하여 모든 트랜잭션을 복구하고 Undo 데이터를 이용해 비정상 종료 지점까지 복구한다.
  • Fast Commit
    • 대량 작업의 기록을 먼저 빠르게 로그파일에 기록을하고 메모리 블록과 디스크 블록의 동기화는 나중에 일괄 수행한다.
      이때 비정상 종료가 되더라도 Redo 로그에 먼저 기록하고 작업하므로
      모두 복구가 가능하다.
      이러한 매커니즘으로 Redo 로그를 믿고 최대한 빠른 경로로 작업을 완수한다.

Undo 란?

Undo 도 마찬가지로 데이터 변경에 따른 기록을 하는 로그 파일이다.

Undo는 3가지 목적을 위해 사용한다.

  • Transaction Rollback
    • 일반적으로 변경사항을 커밋하지않고 롤백할때 사용하는 데이터
  • Transaction Recovery
    • 앞에 설명한 Redo에서 비정상 종료를 복구할때 최종 커밋하지않은 변경사항도 복구된다. 이후 Undo 데이터로 커밋하지않은 트랜잭션을 모두 롤백한다.
  • Read Consistency
    • 읽기 일관성에 사용된다.
      예를들어 사용자a의 변경사항을 커밋하지 않을때 사용자 b는 커밋되지 않은 변경사항을 볼 수 없다.
profile
🔥🔥🔥🔥 G U N F E 🔥🔥🔥🔥

0개의 댓글