IT기술/Oracle

3 Oracle Background Processes

dobbby 2013. 12. 3. 11:12
반응형

Oracle Server 와 관련된 프로세스는 3가지다.


* User Process

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


* Server Process

User Process 가 전해준 SQL 문장을 실제 수행하는 프로세스


* Background Process

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



1. 필수 Background Process


(1) DBWR (Database Writer)

Database Buffer Cache 에서 변경 완료 후 저장되어야 하는 블록(Dirty Block)을 데이터 파일로 저장하는 역할을 한다.

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

1) Checkpoint 신호가 발생했을 때

2) Dirty Buffer 가 임계값(40%) 을 지났을 때

3) Time out 이 발생했을 때

4) RAC Ping 이 발생했을 때

5) Tablespace 가 Read Only 상태로 변경될 때

6) Tablespace 가 offilne 될 때

7) Tablespace 가 begin backup 상태가 될 때

8) Drop table 이나 Truncate table 될 때

9) Direct Path Read/Write 가 진행될 때

10) 일부 Parallel Query 작업이 진행될 때


DBWR 백그라운드 프로세스는 기본적으로 DBW0 하나가 동작하지만 I/O 가 많이 추가로 더 필요할 경우 여러개를 동시에 사용하여 성능을 향상 시킬 수 있다.

단, 단일 프로세서의 시스템에서는 사용되지 못한다.



(2) LGWR (Log Write)

데이터가 변경되면 Server Process 가 그 변경 내역 (Change Vector) 을 Redo Log Buffer 에 기록하게 된다.

그리고 LGWRRedo Log Buffer 에 있는 내용을 아래의 경우에 디스크의 Redo Log File 로 저장해준다.

1) Commit 이 발생했을 때

2) 1/3이 찼을 때

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

4) 3초 마다

5) DBWR이 내려쓰기 전에



(3) PMON

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


(4) SMON

SMON의 주요업무

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

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

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

4) Dictionary Managed Tablespace 에서 free extents 들을 모아주는 역할


1. A를 입력한다.

2. B를 입력한다.

3. COMMIT 을 수행한다.

4. C를 입력한다.

5. 정전이 되어 DATABASE 가 비정상 종료되었다.


위 상황에서 startup 을 수행하면 아래와 같은 과정으로 Instance Recovery가 수행한다.


Instance Recovery 과정

1) Parameter file 읽어서 Nomount 단계에서 instance를 생성

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

3) Redo log file 에서 위 1,2,3,4 단계의 작업을 다시 수행 (Roll Forward) commit 안된 작업도 수행

4) Database open

5) commit 안된 4번 작업 취소 (Roll Backward)


(5) CKPT

CKPT Process는 DBWR 에게 Checkpoint 신호를 전달해주며 

Control FileData file Header해당 Checkpoint 정보를 기록하는 역할을 하게 된다.

Checkpoint 정보에는 Checkpoint 위치와 SCN, 해당 내용을 담고 있는 Redo log 내용의 위치값 등을 담고 있다.



반응형