반응형


 User Process

 사용자가 작성한 sql 문장을 server process로 전달해 주고 결과를 가져오는 프로세스

 Server Process 

 user process 가 전해준 sql 문장을 실제 수행하는 프로세스

 Background Process 

 oracle server 가 시작되면 자동으로 시작되어 운영과 유지를 담당하는 프로세스


1. 필수 Background process

(1) DBWR( Database Writer )

- Database Buffer Cache 에서 변경된 블록을 데이터 파일로 저장하는 역할


DBWR 이 DB Buffer Cache 의 Dirty Buffer 의 내용을 파일에 내려쓰는 경우

1. Checkpoint 신호가 발생했을 때

2. Dirty Buffer 가 임계 값을 지났을 때   -- 1/3 데이터를 사용했을 때

3. Time out 이 발생했을 때     -- 3초동안 작업이중지됬을때


(2) LGWR( Log Writer )

- 데이터가 변경되면 Server Process 가 변경 내역( Change Vector )을 Redo Log Buffer 에 기록

그리고 LGWR은 Redo Log Buffer 에 있는 내용을 디스크의 Redo Log File 로 저장


1. Commit 이 발생했을 때

2. Redo Log Buffer 에 데이터가 1/3 이 찼을 때 

3. 변경량이 1M 가 되었을 때

4. 3초 마다

5. DBWR이 내려쓰기 전에


Redo Log Buffer 에 있는 내용을 Redo Log File 에 내려쓰는 이유 : 서버가 꺼지면 데이터가 다 날아갈 수 있기 때문에


(3) PMON( Process Monitor )  - 서버프로세스들의 대장

- PMON 은 모든 서버 프로세스들을 감시하고 비정상적으로 종료된 프로세스가 있다면 관련 복구작업등을 하는 역할


(4) SMON ( System Monitor )

주요 업무

- 인스턴스가 비정상 종료 되었을 경우( Instance Crash ) 인스턴스를 시작할 때 Clean Up 하는 역할( Instance Recovery )

- 어떤 사정이 ( File 에러나 Tablespace 가 offline 상태 ) 있어서 Instance Recovery 과정에서 누락된 Transaction 을 Recovery 하는 역할도 담당

- 비정상 종료된 Transaction 이 사용 중이던 Temporary Segment 를 Clean Up 하는 역할

- Dictionary Managed Tablespace 에서 Free extents들을 모아주는 역할


비정상 종료후 Instance Recovery 하는 과정

1. Parameter file 을 읽어서 nomount 단계에서 instance 를 생성

2. Mount 단계에서 Control file 의 내용을 확인해서 Instance Crash 상황임을 확인

3. Redo log file 에서 비정상 종료 되기전수행하던 작업을 다시 수행 ( Roll Forward 라고함 )

이때 중요한 것은 종료되기전에 작업을 수행했을 때 commit을 했어도 commit후에 수행했던 작업들도 다시 수행됨

예) 1. a 입력     

2. b 입력

3. commit

4. c 입력

5. db 비정상 종료됨

이경우 4번도 수행됨

4. database 를 open

5. commit 안된 4번작업을 취소 ( roll backward라고함)


(5) CKPT ( Checkpoint Process )

CKPT Process 는 DBWR 에게 Checkpoint 신호를 전달해 주며 Control File 과 Data file Header 에 해당 Checkpoint 정보를 기록하는 역할


checkpoint 정보에는 checkpoint 위치와 SCN, 해당 내용을 담고있는 Redo log 내용의 위치값을 담고 있음


반응형

'오라클 > 관리 실무' 카테고리의 다른 글

Oracle 저장구조  (0) 2014.10.23
Tablespace 와 Data File 관리하기  (2) 2014.10.21
Redo Log 관리하기  (0) 2014.10.20
Control File 관리하기  (0) 2014.10.20
ORACLE 시작하기 & 종료하기  (0) 2014.10.20
SQL 문장의 실행 원리  (0) 2014.10.17
Oracle Architecture  (2) 2014.10.17

+ Recent posts