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 입니다.
Redo Log Buffer의 내용을 Disk의 Redo Log File에 Write하는 역할을 담당 합니다.
데이터파일 헤더와 컨트롤파일 정보 갱신 및 데이터베이스 버퍼 캐시와 리두 로그 버퍼의 내용이 파일에 저장되는 것을 보장 합니다.
체크포인트는 데이터 파일의 헤더와 컨트롤 파일에 체크포인트 이벤트 정보를 갱신합니다. 이 기록은 추후 장애 발생시 기록된 시점까지 복구가 가능하도록 합니다.
체크포인트는 SGA의 변경된 데이터베이스 버퍼 캐시와 리두 로그 버퍼의 내용이 데이터 파일과 리두 로그 파일에 저장 되도록 DBWR와 LGWR를 호출 하는 기능을 합니다.
더 빈번한 체크포인트는 성능상의 비용은 더 들지만 인스턴스 장애로부터 복구하는데 필요한 시간을 단축할 수 있습니다.
System Monitor Process는 오라클 인스턴스를 관리 하는 프로세스 입니다.
오라클 인스턴스 Fail시 인스턴스를 복구하는 역할을 합니다
데이터 파일의 빈 공간을 연결하여 하나의 큰 빈 공간으로 만듭니다.
더 이상 사용하지 않는 Temporary Segment들을 재사용 할 수 있게 합니다.
오라클에 서버에서 사용되는 각 프로세스들을 감시하는 프로세스 입니다.
비정상 종료된 데이터베이스의 접속을 정리 합니다.
정상적으로 작동하지 않는 프로세스들을 감시하여 종료 시키며, 비정상적으로 종료된 프로세스들에게 할당된 리소스를 재사용 가능하게 합니다.
RECO는 분산 데이터베이스에서 네트워크 또는 시스템 장애로 실패한 분산 트랜잭션 오류를 자동으로 처리합니다.
로컬 RECO 는 정해진 시간마다 리모트 데이터베이스에 연결을 시도해 보고, 자동으로 로컬내의 미결정된 트랜잭션을 커밋 하거나 롤백 시킵니다.
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 값이 올 수 있습니다.
JOB$ Table을 모니터하고 Job Queue Process(Jnnn)을 시작시킵니다.
JOB_QUEUE_PROCESSES 파라미터 값이 0 이면 CJQn 프로세스는 활동하지 않습니다.
ARCn 프로세스는 Redo Log File에 기록된 내용이 꽉차 로그 파일이 스위치 되면서 리두 로그 파일을 아카이브 저장소로 복사합니다.
ARCn 프로세스는 10개의 ARCn processes까지 가능하며 LOG_ARCHIVE_MAX_PROCESSES라는 파라미터에 설정 합니다. (ARC0 to ARC9)
ARCn는 Redo Log가 ARCHIVELOG Mode일 때만 존재 합니다.
Shared Server 환경에서 사용되는 Dispatcher Process로 서버 프로세스와 여러 개의 사용자 프로세스 사이에서 사용자의 요구를 서버에 전달하고 서버의 응답을 사용자에게 전달하는 역할을 합니다.
Oracle Advanced Queuing(Oracle AQ)에 대한 메시지 대기열을 모니터하는 선택적 백그라운드 프로세스입니다. 최대 10개 의 대기열 모니터 프로세스를 구성할 수 있습니다.
Oracle10g 부터는 자동화된 공유 메모리 관리를 위해 Memory Manager(MMAN)라는 새로운 백그라운드 프로세스가 도입 되었습니다.
MMAN 백그라운드 프로세스가 5분 마다 주기적으로 수집한 작업 부하(Workload) 정보를 바탕으로 SGA가 동적으로 구성이 되고, 가장 필요한 곳에 동적으로 할당이 됩니다.
자동화된 공유 메모리 관리를 사용하기 위해서는 SGA_TARGET 파라미터의 값을 0이 아닌 값으로 설정해야 합니다.
Oracle10g 부터는 플래시백 데이터베이스 기능을 위해 Recovery Writer Process(RVWR)라는 새로운 백그라운드 프로세스가 도입되었습니다.
이는 데이터 블록의 Pre-Image를 저장해서 Flashback Log를 기록하는 역할을 수행 합니다.
Oracle 10g의 새로운 기능인 fast RMAN incremental backup을 위해 변경된 Tracking Feature를 위한 새로운 블록을 관장하는 프로세스 입니다.
Oracle 10g에 새로 추가된 프로세스로, new feature인 Automatic Workload Repository(AWR) 기능을 위해 statistics buffer 전체를 필요시 디스크에 기록하는 역할을 한다.
Oracle 10g에 새로 추가된 프로세스로, new feature인 Automatic Workload Repository와 연관되어 새로 추가된 프로세스로, AWM은 자동화된 문제 진단 및 self-tuning 작업을 수행한다. MMON은 AWR에 필요한 통계 정보를 스케줄에 따라 기록한다.
- 강좌 URL : http://www.gurubee.net/lecture/1892
- 구루비 강좌는 개인의 학습용으로만 사용 할 수 있으며, 다른 웹 페이지에 게재할 경우에는 출처를 꼭 밝혀 주시면 고맙겠습니다.~^^
- 구루비 강좌는 서비스 제공을 위한 목적이나, 학원 홍보, 수익을 얻기 위한 용도로 사용 할 수 없습니다.