Oracle 10g 강좌
Background Process 7 2 99,999+

by 구루비 DBWN LGWR CKPT SMON PMON Background Process [2006.04.10]


Database Writer Process (DBWn)

  Database Buffer Cache의 내용을 데이터 파일에 저장하는 작업을 수행.

  Database Buffer Cache 내의 Buffer가 변경될 때, "dirty"라고 표시되며, Database Writer Process의 주요 업무는 Dirty Buffer들을 Disk에 기록함으로써 Database Buffer Cache를 "clean" 하게 유지하는 것입니다.

  오라클 인스턴스는 DBW0~DBW9까지 최대 10개의 DBWR을 가질 수 있으며 DB_WRITER_PROCESSES 파라미터를 통해서 개수를 지정 할 수 있으나 대부분의 인스턴스에서는 하나의 DBWR을 사용합니다.

  데이터베이스 버퍼 캐시의 데이터가 변경된 경우 즉시 데이터 파일에 기록하지 않는 것을 지연 쓰기(Deffered Write)라고 하며 이는 빈번한 I/O로 인한 성능 저하를 막기 위해서 입니다.

  또한 같은 이유로 Commit이 발행될 때 마다 DBWR가 데이터파일에 기록하는 것 역시 아닙니다. Commit이 일어 날 때 마다 바쁘게 일하는 것은 LGWR 입니다.

DBWR가 Database Buffer Cache로부터 데이터 파일에 쓰는 경우
  • - Dirty List에 저장된 Dirty Buffer의 수가 한계치에 도달 했을 때
  • - Time Out(3초)이 발생시
  • - Checkpoint가 발생할 때, Log Writer process(LGWR)가 DBWR에게 신호를 보냄.
  • - Tablespace가 Offline이나, Read Only로 변경 되었을 때
  • - Table을 DROP하거나 TRUNCATE 했을 때
  • - Tablespace BEGIN BACKUP 명령을 실행 했을 때

 

Log Writer Process (LGWR)

  Redo Log Buffer의 내용을 Disk의 Redo Log File에 Write하는 역할을 담당 합니다.

LGWR이 Redo Log Buffer를 Online Redo Log 파일에 기록 하는 경우
  • - User Process가 Transaction을 Commit했을 때 Commit된 record.
  • - 3초마다
  • - Redo Log Buffer가 1/3 찬 경우
  • - DBWR process가 변경된 buffer들을 Disk에 Write할 때

 

Checkpoint Process (CKPT)

  데이터파일 헤더와 컨트롤파일 정보 갱신 및 데이터베이스 버퍼 캐시와 리두 로그 버퍼의 내용이 파일에 저장되는 것을 보장 합니다.

  체크포인트는 데이터 파일의 헤더와 컨트롤 파일에 체크포인트 이벤트 정보를 갱신합니다. 이 기록은 추후 장애 발생시 기록된 시점까지 복구가 가능하도록 합니다.

  체크포인트는 SGA의 변경된 데이터베이스 버퍼 캐시와 리두 로그 버퍼의 내용이 데이터 파일과 리두 로그 파일에 저장 되도록 DBWR와 LGWR를 호출 하는 기능을 합니다.

  더 빈번한 체크포인트는 성능상의 비용은 더 들지만 인스턴스 장애로부터 복구하는데 필요한 시간을 단축할 수 있습니다.

체크포인트 발생 시점
  • - 로그 스위치가 발생할 때마다(무시할 수 없음).
  • - 최종 데이터베이스 체크포인트 이후 명시된 초(second)만큼 경과 시(LOG_CHECKPOINT_TIMEOUT을 이용하여 설정합니다).
  • - 최종 체크포인트 이후 몇 개의 OS 블록의 수가 리두 로그 파일로 기록 되어졌을 때 (LOG_CHECKPOINT_INTERVAL을 이용하여 설정합니다).
  • - 인스턴스가 중지되지(aborted) 않는다면 인스턴스의 종료(shutdown)시에.
  • - DBA에 의해 강제 실행될 때(ALTER SYSTEM CHECKPOINT 명령).
  • - 테이블스페이스가 오프라인 될 때나 온라인 백업이 시작될 때.

 

System Monitor Process (SMON)

  System Monitor Process는 오라클 인스턴스를 관리 하는 프로세스 입니다.

  오라클 인스턴스 Fail시 인스턴스를 복구하는 역할을 합니다

  데이터 파일의 빈 공간을 연결하여 하나의 큰 빈 공간으로 만듭니다.

  더 이상 사용하지 않는 Temporary Segment들을 재사용 할 수 있게 합니다.

 

Process Monitor Process (PMON)

  오라클에 서버에서 사용되는 각 프로세스들을 감시하는 프로세스 입니다.

  비정상 종료된 데이터베이스의 접속을 정리 합니다.

  정상적으로 작동하지 않는 프로세스들을 감시하여 종료 시키며, 비정상적으로 종료된 프로세스들에게 할당된 리소스를 재사용 가능하게 합니다.

 

Recoverer Process (RECO)

  RECO는 분산 데이터베이스에서 네트워크 또는 시스템 장애로 실패한 분산 트랜잭션 오류를 자동으로 처리합니다.

  로컬 RECO 는 정해진 시간마다 리모트 데이터베이스에 연결을 시도해 보고, 자동으로 로컬내의 미결정된 트랜잭션을 커밋 하거나 롤백 시킵니다.

 

Job Queue Process (Jnnn)

  CJQ0은 JOB$ TABLE을 모니터하여 처리 해야 할 작업을 찾으면 자동적으로 Job Queue Process(Jnnn)을 시작 합니다.

  Jnnn(J000...J999) process는 DBMS_JOBS 패키지에 의해 만들어지는 Job Request를 수행 합니다.

  작업 처리를 마친 Jnnn process는 주기적으로 다음 작업을 찾다가 없으면 종료 됩니다.

  JOB_QUEUE_PROCESSES 파라미터로 최대 기동할 수 있는 Job Queue Processes(Jnnn)의 수를 설정 할 수 있습니다. 0 ~ 1000 값이 올 수 있습니다.

 

Coordinator Job Queue Process (CJQn)

  JOB$ Table을 모니터하고 Job Queue Process(Jnnn)을 시작시킵니다.

  JOB_QUEUE_PROCESSES 파라미터 값이 0 이면 CJQn 프로세스는 활동하지 않습니다.

 

Archiver Process (ARCn)

  ARCn 프로세스는 Redo Log File에 기록된 내용이 꽉차 로그 파일이 스위치 되면서 리두 로그 파일을 아카이브 저장소로 복사합니다.

  ARCn 프로세스는 10개의 ARCn processes까지 가능하며 LOG_ARCHIVE_MAX_PROCESSES라는 파라미터에 설정 합니다. (ARC0 to ARC9)

  ARCn는 Redo Log가 ARCHIVELOG Mode일 때만 존재 합니다.

 

Dispatcher Process (Dnnn)

  Shared Server 환경에서 사용되는 Dispatcher Process로 서버 프로세스와 여러 개의 사용자 프로세스 사이에서 사용자의 요구를 서버에 전달하고 서버의 응답을 사용자에게 전달하는 역할을 합니다.

 

Queue Monitor Process (QMNn)

  Oracle Advanced Queuing(Oracle AQ)에 대한 메시지 대기열을 모니터하는 선택적 백그라운드 프로세스입니다. 최대 10개 의 대기열 모니터 프로세스를 구성할 수 있습니다.

 

Memory Manager Process (MMAN)

  Oracle10g 부터는 자동화된 공유 메모리 관리를 위해 Memory Manager(MMAN)라는 새로운 백그라운드 프로세스가 도입 되었습니다.

  MMAN 백그라운드 프로세스가 5분 마다 주기적으로 수집한 작업 부하(Workload) 정보를 바탕으로 SGA가 동적으로 구성이 되고, 가장 필요한 곳에 동적으로 할당이 됩니다.

  자동화된 공유 메모리 관리를 사용하기 위해서는 SGA_TARGET 파라미터의 값을 0이 아닌 값으로 설정해야 합니다.

 

Recovery Writer Process (RVWR)

  Oracle10g 부터는 플래시백 데이터베이스 기능을 위해 Recovery Writer Process(RVWR)라는 새로운 백그라운드 프로세스가 도입되었습니다.

  이는 데이터 블록의 Pre-Image를 저장해서 Flashback Log를 기록하는 역할을 수행 합니다.

 

Change Tracking Writer Process (CTWR)

 

Oracle 10g의 새로운 기능인 fast RMAN incremental backup을 위해 변경된 Tracking Feature를 위한 새로운 블록을 관장하는 프로세스 입니다.

 

Memory Monitor Light Process (MMNL)

  Oracle 10g에 새로 추가된 프로세스로, new feature인 Automatic Workload Repository(AWR) 기능을 위해 statistics buffer 전체를 필요시 디스크에 기록하는 역할을 한다.

 

Memory Monitor Process (MMON)

  Oracle 10g에 새로 추가된 프로세스로, new feature인 Automatic Workload Repository와 연관되어 새로 추가된 프로세스로, AWM은 자동화된 문제 진단 및 self-tuning 작업을 수행한다. MMON은 AWR에 필요한 통계 정보를 스케줄에 따라 기록한다.

 

참고링크

- 강좌 URL : http://www.gurubee.net/lecture/1892

- 구루비 강좌는 개인의 학습용으로만 사용 할 수 있으며, 다른 웹 페이지에 게재할 경우에는 출처를 꼭 밝혀 주시면 고맙겠습니다.~^^

- 구루비 강좌는 서비스 제공을 위한 목적이나, 학원 홍보, 수익을 얻기 위한 용도로 사용 할 수 없습니다.

by JADE [2010.03.16 09:55:31]
LGWR이 Redo Log Buffer를 Online Redo Log 파일에 기록 하는 경우 중 추가해서 Log Buffer cache size 가 1MB를 초과할때도 기록이 실행되는 걸로 알고있습니다.

by 샤른 [2020.09.14 15:40:49]

DBWR이 데이터베이스 버퍼 캐시에 기록을 하는 경우 중에 타임아웃은 정확히 어떤 타임아웃을 말하는 건가요?

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입