Oracle 데이터 복구 관련 모드 - Redo, Archive, Nologging
요약/비유
- Redo: 실시간 메모장
- Archive: 다 쓴 메모장 복사본
- Nologging: 중요하지 않으니 메모장에 적지마

Redo 모드
- 모든 변경 사항(CRUD) 기록
- 메모리에만 있고 디스크에 기록되지 않은 데이터를 복구하기 위해 사용함
Log Switch: 2개 이상의 그룹이 순환 방식으로 동작
- 1그룹 꽉 차면 2그룹으로 넘어감. 2그룹 꽉 차면 1그룹 덮어쓰며 기록
- 그룹 넘어갈 때 체크포인트가발생하여 메모리 데이터를 디스크로 옮김
Log Switch 시 작업
-
Checkpoint
- 메모리의 데이터를 디스크로 옮기기
- 주체: DBWR(Database Writer) 프로세스
- 로그가 넘어가기 직전 메모리(Buffer Cache)에 있는 데이터(Dirty Buffer)를 실제 데이터 파일로 강제로 밀어넣어 안전한 지점(checkpoint)을 만듦.
-
Archiving - ARCn의 작업
- 다 쓴 Redo 로그를 복사해서 보관
- 주체: ARCn(Archiver) 프로세스
ARCHIVELOG 모드가 ON이라면, 방금 막 기록이 끝난(Full이 된) Online Redo Log 파일을 통째로 복사해서 지정된 저장소(ARCHIVE_DEST)에 새로운 파일로 저장한다.
Archive 모드
- 기록이 끝난 Redo 로그를 별도 파일로 복사해두는 상태
- 가동 중인 DB를 백업(Hot Backup) 가능, 장애 발생 시 시점 복구(Point-in-Time Recovery) 가능
ARCHIVELOG 모드: Redo 로그 그룹이 꽉 차서 다음 그룹으로 넘어가기 전에 안전한 곳으로 복사본(Archive Log)를 만듦
NOARCHIVELOG 모드: 기록된 Redo 로그를 백업하지 않고 덮어씀. 최신 백업 시점 이후로는 데이터 복구 불가
Nologging 모드
- Redo 로그에 기록을 남기지 않는 옵션
- 너무 큰 작업을 하는 경우 등에 로그 남기는 부하를 줄여서 속도를 비약적으로 높일 때 사용
- 장애 날 시 해당 작업 데이터 절대 복구 불가
- ARCHIVELOG 모드일 경우에만 Nologging 옵션이 의미가 있음. (어차피 NOARCHIVELOG 모드에서는 복구가 안 되므로 효과 미미)
출처