본문
┌ User Process : 사용자가 작성한 SQL 문장을 Server Process로 전달해 주고 결과를 가져오는 프로세스
├ Server Process : User Process가 전해 준 SQL 문장을 실제 수행하는 프로세스
└ Background Process : Oracle Server가 시작되면 자동으로 시작되어 운영과 유지를 담당하는 프로세스
* User Process와 Server Process는 사용자가 접속하면 생성되고 사용자가 접속을 종료하면 사라짐
* 필수 Background Process는 Oracle Server가 시작되면 함께 시작되고 Oracle Server가 종료되면 종료됨
1. 필수 Background Process
(1) DBWR(Database Writer)
: Database Buffer Cache에서 변경 완료 후 저장되어야 하는 블록(Dirty Block)을 데이터 파일로 저장하는 역할
▣ DBWR이 DB Buffer Cache의 Dirty Buffer의 내용을 파일에 내려쓰는 경우
|
(2) LGWR(Log Writer)
: Redo Log Buffer에 있는 내용을 디스크의 Redo Log File로 저장하는 역할
▣ LGWR이 Redo Log Buffer의 내용을 파일에 내려쓰는 경우
① Commit이 발생했을 때
② 1/3이 찼을 때
③ 변경량이 1M가 되었을 때
④ 3초 마다
⑤ DBWR이 내려 쓰기 전에
* Redo Log Buffer에 있는 내용을 Redo Log File에 내려 쓰는 이유
: Redo Log Buffer도 메모리이므로 서버가 꺼지면 내용이 다 날아갈 수 있기 때문에 안전하게 하드에 저장
* Commit을 수행하면 저장을 하긴 하지만 데이터를 저장하는 것이 아니라 Redo Log를 저장하는 것
▣ Database Buffer Cache의 내용을 내려쓰지 않고 Redo Log Buffer를 먼저 쓰는 이유
① Redo Log Buffer의 Block 크기가 Database Buffer Cache보다 훨씬 작기 때문에 빨리 저장할 수 있음
② DB Buffer Cache는 해당 블록의 원래 위치를 찾아 덮어써야하기 때문에 시간이 오래 걸리지만
Redo Log File에 내용을 쓸 때에는 그냥 순서대로 쭉 쓰기 때문에 빨리 기록할 수 있음
③ 한꺼번에 많은 사용자가 동시에 Commit을 수행하는 경우 LGWR은 한꺼번에 Redo Log File에 기록하는
Group Commit기법을 사용하여 Disk I/O도 줄이고 성능도 향상 시킴
* Commit 요청이 들어왔는데 Redo Log File이 없는 경우 Alert Log 파일에 해당 에러 내용을 기록해두고
LGWR은 다음 Commit 요청을 수행하지 않고 대기
(3) PMON(Process Monitor)
: 모든 서버 프로세스들을 감시하고 비정상적으로 종료된 프로세스가 있다면 관련 복구 작업등의 역할을 함
(4) SMON(System Monitor)
▣ SMON의 주요 업무
① 인스턴스가 비정상 종료 되었을 경우(Instance Crash) 인스턴스를 시작할 때 Clean Up(Instance Recovery)
② File 에러나 Tablespace가 Offline 상태에 있어서 Instance Recovery 과정에서 누락된 Transaction을
Recovery 하는 역할 담당
③ 비정상 종료된 Transaction이 사용 중이던 Temporary Segment를 Clean Up하는 역할
④ Dictionary Managed Tablespace에서 Free extents들을 모아주는 역할
▣ A 항목의 Instance Recovery 과정
1. A를 입력 |
- 위 상황에서 startup을 수행하면 아래와 같은 과정으로 Instance Recovery를 수행함
1. Parameter file을 읽어서 nomount 단계에서 instacne를 생성 |
(5) CKPT(Checkpoint Process)
: DBWR에게 Checkpoint 신호를 전달해 주며 Control File과 Data file Header에 해당 Checkpoint 정보를 기록하는 역할
* Checkpoint는 Checkpoint 위치와 SCN, 해당 내용을 담고 있는 Redo log 내용의 위치 값 등을 가짐
(6) MMON과 MMNL(Manageability Monitor Processes) – 10g 이후
- MMON Process : AWR(Automatic Workload repository)와 관련된 다양한 작업을 수행하는 프로세스
- MMNL Process : Active Session History(ASH) 정보를 디스크의 파일로 기록하는 역할
(7) RECO(Recoverer Process)
: 분산 데이터베이스 환경에서 트랜잭션 처리 도중에 장애가 발생할 경우 해당 트랜잭션을 자동으로 복구해주는 역할
* 분산 데이터베이스가 아닌 환경에서는 큰 의미가 없음
2. 선택적인 Background Processes
(1) ARCn(Archiver Processes)
: Archive Log Mode로 데이터베이스를 운영할 경우 Online Rodo Log File을 Archiving 해 주는 역할
* Archive Log Mode가 아닐 경우 작동하지 않음
(2) CJQ0 & Jnnn(Job Queue Processes)
: 오라클에서 제공하는 Job 기능을 수행하는 프로세스
- Oracle Job : 어떤 작업을 미리 정해진 시간에 정해진 옵션으로 예약해서 실행하는 기능
(3) FBDA(FlashBack Data Archiver Process) - 11g 이후
: FBDA 기능을 사용할 경우 Undo Data를 다른 사용자가 덮어쓰기 전에 Archive를 해서 보관해주는 기능이 있는데
이때 Undo Data를 다른 곳으로 복사해주는 역할
서진수,『오라클 관리 실무』, 생능출판사, 2013, pp.80-87
'Oracle > Oracle_Admin' 카테고리의 다른 글
Chapter 05. Control File 관리하기 (0) | 2014.09.02 |
---|---|
Chapter 04. Oracle 시작하기와 종료하기 (0) | 2014.09.01 |
Chapter 02. SQL 문장의 실행 원리 (2) | 2014.06.12 |
Chapter 01. Oracle Architecture (0) | 2014.06.12 |
오라클 관리 실무 / 서진수 지음 (0) | 2014.06.10 |