====== Oracle Process ====== ===== User Process ===== - 사용자가 오라클 어플리케이션 프로그램을 실행시켰을때 사용되는 프로세스이다. - 사용자가 오라클서버에 접속할때마다 사용자 프로세스가 생성된다. - 사용자가 실행시킨 SQL문을 서버 프로세스에 전달하고, 그 결과를 서버 프로세스로부터 받는 역할을 수행한다. ===== Server Process ===== === Shared Server vs Dedicated Server === {{dbms:oracle:concept:shared_server.gif?400x600|}} {{dbms:oracle:concept:dedicated_server.gif?400x600|}} ==== Dedicated Server Processes ==== - Oracle에 접속된 모든 User Process는 상응하는 Dedicated Server Process를 가지므로 \\ User Process와 Server Process는 1:1의 비율로 존재한다. ==== Shared Server Processes ==== - 다수의 User Process가 매우 적은 수의 Server Process를 공유하는 것을 허용하는 방법이다. - 다수의 User Process가 Dispatcher Process에 접속을 하고, Dispatcher는 Client 요구를 사용 가능한 공유 Server Process에 돌아가면서 진입한다. - Shared Server Processes는 Dedicated Server Processes를 동시에 설정 가능하다. - Shared Server 설정의 장점은 System Overhead(memory와 process수)가 감소되어 지원 가능한 User 수가 증가되는 효과를 가져온다. ===== Background Process ===== ==== DBWn ==== - Database Writer Process(DBWn) - Database Buffer Cache의 내용을 데이터 파일에 저장하는 작업을 수행한다. ==== LGWR ==== - Log Writer Process(LGWR) - Redo Log Buffer의 내용을 Disk의 Redo Log File에 Write하는 역할을 담당한다. ==== CKPT ==== - Checkpoint Process(CKPT) - 데이터파일 헤더와 컨트롤파일 정보 갱신 및 Database Buffer Cache와 Redo Log Buffer의 내용이 파일에 저장되는 것을 보장한다. ==== SMON ==== - System Monitor Process(SMON) - System Monitor Process는 Oracle Instance를 관리하는 프로세스이다. - Oracle Instance Fail시 Instance를 복구하는 역할을 한다. - 데이터파일의 빈 공간을 연결하여 하나의 큰 빈 공간으로 만든다. - 더 이상 사용하지 않는 Temporary Segment들을 재사용 할 수 있게 합니다. - Database Open시 Files 의 일관성(Consistency) 검사 및 Recovery ==== PMON ==== - Process Monitor Process(PMON) - 오라클에 서버에서 사용되는 각 프로세스들을 감시하는 프로세스이다. - Process 비정상 Shutdown 시 Resource 회수 - 트랜잭션 회수(Transaction Rollback) - 락(Lock) 해제 ==== RECO ==== - Recoverer Process(RECO) - Recoverer Process는 분산 데이터베이스에서 네트워크 또는 시스템 장애로 실패한 분산 트랜잭션 오류를 자동으로 처리합니다. - Local Recoverer Processes는 정해진 시간마다 리모트 데이터베이스에 연결을 시도해 보고, 자동으로 로컬내의 미결정된 트랜잭션을 Commit 또는 Rollback 시킨다. ==== Jnnn ==== - Job Queue Process(Jnnn) - Jnnn(J000...J999) process는 DBMS_JOBS 패키지에 의해 만들어지는 Job Request를 수행합니다. ==== CJQn ==== - Coordinator Job Queue Process(CJQn) - CJQn 는 JOB$ Table을 모니터하여 처리해야 할 작업을 찾으면 자동적으로 Job Queue Process(Jnnn)를 시작합니다. - JOB_QUEUE_PROCESSES 파라메터 값이 0이면 CJQn 프로세스는 활동하지 않는다. ==== ARCn ==== - Archiver Process(ARCn) - ARCn 프로세스는 Redo Log File에 기록된 내용이 꽉차 로그파일이 스위치되면서 Redo Log File을 아카이브 저장소로 복사합니다. ==== Dnnn ==== - Dispatcher Process(Dnnn) - Shared Server 환경에서 사용되는 Dispatcher Process로 서버 프로세스와 여러 개의 사용자 프로세스 사이에서 \\ 사용자의 요구를 서버에 전달하고 서버의 응답을 사용자에게 전달하는 역할을 한다. ==== QMNn ==== - Queue Monitor Process(QMNn) - Oracle Advanced Queuing(Oracle AQ)에 대한 메시지 대기열을 모니터하는 선택적 백그라운드 프로세스입니다. - 최대 10개의 대기열 모니터 프로세스를 구성할 수 있습니다. ==== MMAN ==== - Memory Manager Process(MMAN) - 자동화된 공유 메모리 관리(ASMM)를 위해 Memory Manager(MMNAM)라는 새로운 백그라운드 프로세스가 도입되었다. - MMAN Backgroud Process가 5분마다 주기적으로 수집한 작업부하(Workload) 정보를 바탕으로 SGA가 동적으로 구성이 되고, 가장 필요한 곳에 동적으로 할당된다. - 자동화된 공유 메모리 관리를 사용하기 위해서는 SGA_TARGET 파라메터 값을 0이 아닌 값으로 설정해야 합니다. ==== RVWR ==== - Recovery Writer Process(RVWR) - Oracle 10g부터는 Flashback Database 기능을 위해 Recovery Writer Process(RVWR)라는 새로운 백그라운드 프로세스가 도입되었습니다. - 이는 데이터 블록의 PreImage를 저장해서 Flashback Log를 기록하는 역할을 수행한다. ==== CTWR ==== - Change Tracking Writer Process(CTWR) - Oracle 10g의 새로운 기능인 fast RMAN incremental backup을 위해 변경된 Tracking Feature를 위한 새로운 블록을 관장하는 프로세스이다. ==== MMNL ==== - Memory Monitor Light Process(MMNL) - Oracle 10g에 새로 추가된 프로세스이다. - new feature인 Automatic Workload Repository(AWR) 기능을 위해 statistics buffer 전체를 필요시 디스크에 기록하는 역할을 한다. ==== MMON ==== - Memory Monitor Process(MMON) - Oracle 10g에 새로 추가된 프로세스이다. - New feature인 Automatic Workload Repository와 연관되어 새로 추가된 프로세스이다. - AWR는 자동화된 문제진단 및 self tuning 작업을 수행한다. - MMON은 AWR에 필요한 통계정보를 스케줄에 따라 기록한다.