오늘은 Oracle Database에서 필수적으로 필요한 Background Process에 대해서 글을 써볼 생각이다.
Oracle 필수 Background Process는 Oracle Server가 시작되면서 함께 시작되고 Oracle Server가 종료되면 같이 종료된다.
* 필수 Background Process중 하나가 죽게되면 Oracle Server는 죽게된다.
- DBWR은 Database Buffer-Cache에서 변경 완료후 저장되어야하는 블록 ( Dirty Block )을 데이터 파일로 저장하는 역할을 한다.
- DBWR은 기본적으로 DBW0 하나가 작동을 하지만 I/O가 많이 추가로 더 필요한 경우 DBW1 ~ DBW9를 동시에 사용하여 성능을 향상시킬 수 있다. 단, 단일 프로세서의 시스템에서는 안된다.
SQL> show parameter db_writer_processes
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
db_writer_processes integer 1
- DBWR이 DB Buffer Cache의 Dirty Buffer의 내용을 파일에 내려쓰는 경우는 아래와 같다.
1. Checkpoint 발생시
2. Dirty Buffer가 임계값을 지났을때
3. Timeout 발생시
4. RAC Ping이 발생했을때
5. Tablespace가 Read only 상태로 변경될때
6. Tablespace가 offline될떄
7. Tablespace begin backup 상태가 될때
8. Drop table이나 Truncate table 될때
9. Direct Path Read/Write가 진행될 때
10. 일부 Parallel QUery 작업이 진행될 떄
- Redo Log Buffer도 메모리이므로 서버가 꺼지면 내용이 날아갈 수 있기 떄문에 Redo Log File에 저장하여야하는데 이떄 Redo Log Buffer에 있는 내용을 저장하는 Redo Log File로 저장하는 역할을 하는것이 LGWR이다.
-LGWR이 Redo Log File에 기록하는경우는 아래와 같다.
1. Commit이 발생했을시
2. 1/3이 찼을때
3. 변경량이 1M가 되었을때
4. 3초마다
5. DBWR이 내려 쓰기 전에
-LGWR은 만약 Commit 요청이 왔을때 Redo Log File이 없을 경우 Alert Log 파일에 에러 내용을 기롣해두고 Commit 요청을 수행하지 않고 대기한다.
- PMON은 서버 프로세스들을 감시하고 비정상적으로 종료된 프로세스가 있다면 관련 복구작업등을 하는 역할을 한다.
- 서버 프로세스가 작업 도중에 비정상적으로 종료가 되었다면 PMON이 해당 서버 프로세스가 사용하고 있던 Trnascation Table의 내용을 reset하며 설정해두었던 lock이 있다면 해제하고 Transcation ID를 시스템에서 제거해주는 일을 하게된다.
- SMON은 인스턴스가 비정상 종료되엇다 시작되는 시점에 Instance Recovery하는 역할을 담당한다.
- Instance Recovery 과정
1. Insert A
2. Insert B
3. Commit
4. Insert C
5. Database 비정상 종료
위 상황에서 Startup 수행할시 아래와 같은 과정으로 Instance Recovery를 수행한다.
1.Mount 단계에서 Control file의 내용을 확인해서 Instance Crash가 발생한것을 확인한다.
2.Redo log file에서 위 1,2,3,4 단계를 다시 실행 ( Roll Forward ) 이때 Commit되지 않은 4번 Insert C 작업도 수행하게된다.
3.Database Open
4.Commit이 안된 4번 Insert C 작업을 취소한다 ( Roll Back )
CKPT ( Checkpoint Process ) |
- CKPT Process는 DBWR에게 Checkpoint 신호를 전달해 주며 Control File과 Data file Header에 해당 Checkpoint 정보를 기록하는 역할을 한다.
-Checkpoint 정보는 Checkpoint 위치와 SCN, 해당 내용을 담고있는 Redo log 내용의 위치값을 담고 있다.
MMON & MMNL ( Manageability Monitor Processes - 10g 이후 추가 ) |
- MMON Process는 AWR와 관련된 다양한 작업을 수행하는 프로세스이다.
- MMNL은 Active Session History ( ASH ) 정보를 디스크의 파일로 기록하는 역할을 수행한다.