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