Oracle Server 관련 프로세스는 3가지로 나눌 수 있음
1. User Process
사용자가 작성한 SQL 문장을 Server Process로 전달해 주고 결과를 가져오는 프로세스
즉, SQL 셔틀
오라클 서버와 직접적으로 interact 하지 않는다.
2. Server Process
User Process가 전해 준 SQL 문장을 실제 수행하는 프로세스
Directly interacts with the Oracle Server 서버랑 직접 연결되는 프로세스
Dedicated Server(user 1: 처리 1, 관려 편함)
Shared Server (user 多: 처리 1, 메모리 사용량은 적지만 무한 loop같은 비정상 쿼리가 들어올 경우 DB 사망 가능, 관리 어려움)
3. Background Process
DBWR (Database Writer)
DB Buffer Cache에 저장되어야 하는 내용을 데이터 파일로 저장하는 역할
기본적으로 DBW0 하나가 작동을 하지만 설정에 따라서 여러 개의 프로세스를 사용할 수 있음
DBW1~DBW9를 동시에 사용 가능하며 성능을 향상시킬수 있음
db_writer_processes 파라미터를 이용해 조정이 가능하다.
Checkpoint 신호가 발생했을 때, Dirty Buffer가 임계값을 지났을 때(1/3지났을 때), Time out 이 발생했을 때, RAC Ping이 발생했을 때, Tablespace가 read only 상태로 변경될 때, Tablespace가 offline 될 때, Tablespace가 begin backup 상태가 될 때, drop/truncate table 될 때 DBWR 프로세스가 작업을 시작함.
LGWR (Log Writer)
Redo Log Buffer의 내용을 Redo Log File로 저장하게 하는 역할
Commit 이 발생했을 때, 1/3이 찼을 때, 변경량이 1M가 되었을 때, 3초마다, DBWR이 내려쓰기 전에 LGWR이 Redo Log Buffer의 내용을 Redo Log File로 저장한다.
PMON (Process Monitor)
모든 서버프로세스를 모니터링, 비정상적으로 종료된 프로세스가 있다면 관련 복구 작업 담당
실패한 프로세스가 수행하던 트랜잭션 rollback, 실패한 프로세스가 설정했던 lock이나 메모리, transaction ID등을 해제한다.
인스턴스가 시작될 때 해당 인스턴스의 정보를 listener에 등록하고 관리하는 역할도 함
SMON (System Monitor)
Instance Crash일 경우 인스턴스 시작할 때 Clean Up하는(정리 안되었던 내용을 수정) 역할을 담당 = Instance Recovery (mount 에서 open 으로 넘어갈 때 redolog에 있던 모든 내용을 데이터 파일에 전부 적용-roll forward db open undo segment를 확인해 commit 안된 데이터는 취소시킴-roll backward)
인스턴스 복구수행, 데이터 Block 의 연속된 공간 통합, temporary segment clean up, OPTIMAL 크기 유지하는 역할도 함
CKPT (Checkpoint Process)
DBWR에게 Checkpoint 신호를 전달하고 datafile 헤더와 control file 헤더에 해당 checkpoint 정보를 기록하는 역할
Log switch가 발생할 경우, 3초마다 발생, 테이블스페이스가 offline으로 변경될 때, 데이터베이스가 정상 종료될 때, 사용자가 alter system checkpoint 명령어로 checkpoint 발생시킬 때, checkpoint 관련 파라미터에서 정한 값에 의해 활동 주기가 되었을 때 작업함
'오라클 ADMIN' 카테고리의 다른 글
STARTUP / SHUTDOWN (0) | 2013.01.14 |
---|---|
Parameter Files (0) | 2013.01.14 |
SGA (0) | 2013.01.14 |
SQL 문장 실행 원리 (0) | 2013.01.14 |
Oracle Architecture 오라클 서버 구조 (0) | 2013.01.14 |