Background Process Architecture

흔적남기기·2025년 11월 16일

Database/SQL

목록 보기
2/2
post-thumbnail

Background Process Architecture

백그라운드 프로세스에는 다양한 종류가 있지만 빨간색 박스친 부분은 필수적인 프로세스들입니다. 이번 시간에는 필수적인 백그라운드 프로세스들에 대해 알아보겠습니다.

Background Process

🤔 백그라운드 프로세스란?
백그라운드 프로세스는 데이터베이스의 일관성 유지, I/O 관리, 복구, 로깅 등을 자동으로 수행합니다.

LGWR (Log Writer Process)

역할:
트랜잭션에 의해 생성된 Redo Entry(Log Record) 를 Redo Log Buffer → Online Redo Log File 로 기록합니다.

동작 시점

  • COMMIT 수행 시 (commit-write 동기화)
  • Redo Log Buffer가 1/3 이상 차거나 1MB 이상 쌓일 때
  • 3초 주기 타이머 혹은 DBWn이 Trigger할 때

DBWn (Database Writer Process)

역할:
SGA 내 Database Buffer Cache 의 Dirty Buffer데이터파일(Datafile) 로 기록합니다.

트리거 조건

  • 버퍼 캐시 공간 부족 시 (Free Buffer 확보 필요)
  • Checkpoint 발생 시 (CKPT 요청)
  • 타이머 또는 LRU flush에 의해

특징

  • 비동기(Asynchronous) 다중 쓰기 지원 (I/O 슬레이브)
  • DBW0 ~ DBW9, DBWa ~ DBWz 등 다중 프로세스 구성 가능
  • Write 시점은 트랜잭션 커밋과 무관 (지연 기록, Deferred Write)

CKPT (Checkpoint Process)

역할:
데이터베이스의 일관성 포인트(SCN) 를 정의하고,
DBWn에게 Dirty Buffer의 기록을 지시합니다.

주요 동작

  • 모든 데이터파일 헤더와 컨트롤 파일에 현재 SCN 기록
  • Redo Log 재활용 시점 관리
  • 인스턴스 재기동 시 복구 범위(Recovery Boundary) 단축

Checkpoint 발생 유형

  • 로그 스위치 시점(Log Switch Checkpoint)
  • 수동 명령(ALTER SYSTEM CHECKPOINT)
  • Fast/Incremental Checkpoint
  • Instance Recovery Boundaries

SMON (System Monitor Process)

역할:
비정상 종료 후의 Instance Recovery 수행 및 시스템 자원 정리, Redo Log와 Undo Segment를 결합해 Crash Recovery를 수행합니다.

복구 절차

  • Redo Log에서 재실행 (Roll Forward Phase)
  • Undo Segment를 이용한 Undo (Roll Back Phase)
  • TEMP, Free Space Coalescing 수행

특징

  • 복구 시 SCN 기준으로 Redo 로그를 Replay
  • 다중 인스턴스 환경(RAC)에서는 각 노드의 SMON이 병렬 복구 수행 가능

PMON (Process Monitor Process)

역할:
비정상 종료된 사용자 프로세스(Server Process) 의 자원 해제 및 세션 정리.

주요 기능

  • 세션 정보, 트랜잭션, 락 자원 회수
  • Rollback 세그먼트 정리
  • Listener 재등록 수행 (LREG와 협업)

⚠️주의
PMON은 세션 수준(Session-level) 의 복구를 담당하며,
SMON은 인스턴스 수준(Instance-level) 의 복구를 담당합니다.

ℹ️ 더 알아가기

백그라운드 프로세스의 복구 메커니즘 정리

복구 단계사용 프로세스주요 자원설명
Crash RecoverySMONRedo Log + Undo인스턴스 재기동 시 자동 수행
Media RecoveryARCn + DBWRArchive Log + Datafile손상된 파일 복구 시 수행
Transaction RecoveryPMONUndo Segment세션 강제 종료 시 수행

ARCn (Archiver Process)

역할:
Online Redo Log 파일을 Archive Log 파일로 복사하여 보관한다.
(ARCHIVELOG 모드일 때만 동작)

동작 방식

  • LGWR가 로그 스위치를 수행하면 ARCn이 해당 Redo Log를 백업
  • 로그 순환 전 반드시 아카이빙 완료 필요

자세한 내용은 Redo와 Undo 파트에서 기술할 예정입니다.

RECO (Recoverer Process)

역할:
분산 트랜잭션(Distributed Transaction) 환경에서 2-Phase Commit 실패 시
트랜잭션 상태 불일치 복구 수행.

동작 방식

Pending 상태 트랜잭션을 조사

로그 및 DTC(Distributed Transaction Coordinator) 정보 기반 Commit/Rollback 결정

기타 프로세스들

프로세스역할
MMON / MMNLAWR 스냅샷 관리, 성능 지표 수집, 자동 진단 (ADDM 기반)
MMANSGA/PGA 자동 관리 (Auto Memory Management)
CJQn / JnnnDBMS_JOB, DBMS_SCHEDULER 실행 프로세스
LREGListener Registration 담당 (PMON에서 분리됨, 12c 이후)
RVWRFlashback Database 기록 관리 (Undo + Redo 기반)
QMNC / QnnnAdvanced Queue 모니터링 프로세스
DBRMResource Manager 스케줄링 담당 (10g 이후)
profile
Walk the Walk

0개의 댓글