Oracle 데이터 복구 관련 모드 - Redo, Archive, Nologging

정미·2026년 5월 8일

요약/비유

  • Redo: 실시간 메모장
  • Archive: 다 쓴 메모장 복사본
  • Nologging: 중요하지 않으니 메모장에 적지마

Redo 모드

  • 모든 변경 사항(CRUD) 기록
  • 메모리에만 있고 디스크에 기록되지 않은 데이터를 복구하기 위해 사용함

Log Switch: 2개 이상의 그룹이 순환 방식으로 동작

  • 1그룹 꽉 차면 2그룹으로 넘어감. 2그룹 꽉 차면 1그룹 덮어쓰며 기록
  • 그룹 넘어갈 때 체크포인트가발생하여 메모리 데이터를 디스크로 옮김

Log Switch 시 작업

  1. Checkpoint

    • 메모리의 데이터를 디스크로 옮기기
    • 주체: DBWR(Database Writer) 프로세스
    • 로그가 넘어가기 직전 메모리(Buffer Cache)에 있는 데이터(Dirty Buffer)를 실제 데이터 파일로 강제로 밀어넣어 안전한 지점(checkpoint)을 만듦.
  2. Archiving - ARCn의 작업

    • 다 쓴 Redo 로그를 복사해서 보관
    • 주체: ARCn(Archiver) 프로세스
    • ARCHIVELOG 모드가 ON이라면, 방금 막 기록이 끝난(Full이 된) Online Redo Log 파일을 통째로 복사해서 지정된 저장소(ARCHIVE_DEST)에 새로운 파일로 저장한다.

Archive 모드

  • 기록이 끝난 Redo 로그를 별도 파일로 복사해두는 상태
  • 가동 중인 DB를 백업(Hot Backup) 가능, 장애 발생 시 시점 복구(Point-in-Time Recovery) 가능
  1. ARCHIVELOG 모드: Redo 로그 그룹이 꽉 차서 다음 그룹으로 넘어가기 전에 안전한 곳으로 복사본(Archive Log)를 만듦
  2. NOARCHIVELOG 모드: 기록된 Redo 로그를 백업하지 않고 덮어씀. 최신 백업 시점 이후로는 데이터 복구 불가

Nologging 모드

  • Redo 로그에 기록을 남기지 않는 옵션
  • 너무 큰 작업을 하는 경우 등에 로그 남기는 부하를 줄여서 속도를 비약적으로 높일 때 사용
  • 장애 날 시 해당 작업 데이터 절대 복구 불가
  • ARCHIVELOG 모드일 경우에만 Nologging 옵션이 의미가 있음. (어차피 NOARCHIVELOG 모드에서는 복구가 안 되므로 효과 미미)

출처

0개의 댓글