본문 바로가기
oracle/[Admin] 이론

[이론] chapter 03. Oracle Background Process

by #moonyz 2014. 10. 20.

[Oracle Background Process]

user process : 사용자가 작성한 SQL문장을 server process로 전달해줌, 사용자의 접속유무에따라 생성

server process : user process로부터 받은 SQL문장을 실제 수행하는 프로세스, 사용자의 접속유무에따라 생성

background process : oracle server의 운영과 유지를 담당, oracle server의 시작과 함께 시작/종료

 

1. DBWR (Database Writer)

- DB buffer cache에서 변경완료 후 저장되어야하는 블록(dirty)을 데이터파일로 저장하는 역할

- 기본적으로 DBW0 하나만 작동, but, I/O작업이 많을 경우 최대 10개까지(DBW0~DBW9)

1. checkpoint 발생했을 때

2. dirty buffer가 임계값이 지났을 때

3. time out 발생했을 때

4. RAC ping 발생했을 때

5. direct path read/write 진행될때

6. tablespaceread only 상태로 변경될 때

7. tablespacebegin backup 상태로 변경될 때

8. tablespaceoffline 상태로 변경될 때

9. drop table, truncate table

10. 일부 parallel query 작업 진행될때

 

2. LGWR (Log Writer)

- redo log buffer에 기록된 내용을 디스크의 redo log file로 저장하는 프로세스

- log ahead method : DML이나 DDL수행시 redo log buffer에 먼저 기록 후 DB buffer cache에서 변경

1. commit 발생시

2. 1/3 찼을 때

3. 3초마다

4. 변경량이 1M 되었을 때

5. DBWR이 내려쓰기전에

 

 

- log ahead method (=write ahead) 하는이유?

redo log buffer의 블록사이즈가 DB buffer cache의 블록사이즈보다 더 작기 때문에 빠르게저장가능

DB buffer cache에서 디스크로 저장할 때 해당 데이터의 위치를 찾기 위해 시간이 걸리기 때문

redo log buffer는 순차적으로 저장하므로 빠르게 저장가능

여러사용자가 한꺼번에 commit을 수행할 때 group commit기법을 사용하여 한꺼번에 저장가능, I/O감소


3. PMON (Process monitor)

- 모든 서버프로세스들을 감시, 비정상적으로 종료된 프로세스의 복구작업 등 담당

- 비정상 종료된 서버 프로세스가 사용하고 있던 transaction table의 내용을 다시 reset

- 비정상 종료된 서버 프로세스가 설정해놓은 lock 해제

- 비정상 종료된 서버 프로세스 transaction ID를 시스템에서 제거

- 인스턴스가 시작될 때 해당 인스턴스의 정보를 Listener에 등록하고 관리

 

4. SMON (System monitor)

- 인스턴스가 비정상 종료되었을 경우 인스턴스를 시작할 때 clean up (instance crash -> instance recovery)

- instance recovery 과정 (A입력 -> B입력 -> commit -> C입력 -> instance crash)

parameter file을 읽어서 nomount단계에서 instance 생성

mount단계에서 control file을 읽어서 DB 비정상종료(instance crash)확인

redo log file에서 instance crash되기전 작업을 다시수행, commit이 안된4번작업도수행 (Roll Forward)

database OPEN

commit이 안된 작업을 취소 (Roll Backward)

복구할 내용이 Archive log file에 존재하면 instance recovery로는 복구불가, 수동으로 Media Recovery

 

5. CKPT (checkpoint process)

- DBWR에게 checkpoint 신호를 전달

- control filedata file header에 해당 checkpoint정보를 기록하는 역할

- checkpoint정보에는 checkpoint위치, SCN, 해당 내용을 담고있는 redo log 내용의 위치값 등이 존재

댓글