Background Process

Oracle/Oracle_Admin1 2016. 7. 7. 06:55

오라클에는 크게 3가지로 process가 나뉠 수 있다.


User Process : 사용자가 작성한 SQL문장을 서버 프로세스에 전달, 결과를 가져온다.

Server Process : User Process가 전해준 SQL문장을 수행

Background Process : Oracle Server가 시작되면 자동으로 시작한다. (운영/유지) 담당한다.


U.P, S.P는 사용자가 접속하면 생성되고 종료하면 소멸된다.

B.P는 오라클 서버가 시작되면 시작하고 종료해야 종료된다.


 

1) DBWR

- Data Buffer Cache에서 변경 완료 후 저장되어야 하는 블록(Dirty block)을 data file로 

  저장하는 역할을 한다.

- 이런 과정을 거치면 Free Buffer가 사용 가능해진다.


DBWR가 발생할 때


- CKPT 신호 발생했을 때

- Time out 발생했을 때

- Tablespace가 Read Only될 때

- Tablespace가 Offline될 때

- Tablespace가 begin backup 명령을 실행했을 때

- Dirty Buffer 임계값 지났을 때

- Drop table, Truncate table 했을 때

- Free Buffer 부족할 때




또한 DBWR는 기본적으로 DBW0으로 작동되지만 I/O가 많이 발생하게되면 1~19를 동시에 

사용하게 되어서 성능을 향상시킬 수 있다.


show parameter processes; 로 몇개의 DBWn을 사용하는지 확인할 수 있다.



2) LGWR

- 데이터베이스에서 발생한 모든 변화를 기록한다.

- Redo log buffer에 생겨나며, Transaction이 완료되었을 때 LGWR가 Online Redo log file에 기록하게 된다.


** Commit을 수행하면 data를 저장하는 것이 아니라 Redo log를 저장하는 것이다.



LGWR에 의해서 Redo log buffer가 디스크에 저장되는 시점

1. Commit이 발생

2. Redo log buffer가1/3 찼을 때

3. Redo log buffer에 쓰여진 양에 1M가 됬을때

4. DBWR가 내려쓰기전에

5. 3초마다


**Commit 요청이 들어왔는데 Redo log file이 없으면 alter log 파일에 기록하게 된다.

   LGWR은 다음 Commit 요청을 수행하지 않고 대기한다.




3) PMON

- 모든 Server Process를 감시하고 비정상적으로 종료된 Process가 있다면 관련 복구 작업을 

  수행한다.

- Instance가 시작될 때, 해당 Instance 정보를 Listener에게 등록하고 관리하는 역할도 한다.



4) SMON

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


비정상종료 그리고 Commit 성공

LGWR 에 의해 SCN 이 업데이트되었으나 인스턴스의 비정상 종료로 인해

CKPT 에 의해 SCN 이 data file 과 control file 에 업데이트되지 않았으나

사용자는 COMMIT 을 성공했다고 응답을 받은 경우이므로

data file 과 control file 의 SCN 이후의 redo log 를 다시 실행하여 recovery


LGWR 에 의해 SCN 이 업데이트되었으나

마찬가지로 인스턴스의 비정상 종료로 인해 COMMIT 을 완료하지 못하거나 FAIL 을 리턴한 경우 CKPT 에 의해 SCN 이 data file 과 control file 에 업데이트되지 않은 경우 이므로

data file 과 control file 에 있는 SCN 이후의 redo log 는  다시 실행하지 않고 rollback

단, 모든 데이터 파일과 콘트롤 파일의 헤더가 열린 상태에서 수행하는 것이 recovery 와 다른 점이다.


5) CKPT

CKPT process는 DBWR에게 Checkpoint 신호를 전달해 주며, Control file과 Data file Header에

해당 checkpoint 정보를 기록하는 역할을 한다.


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




CKPT 발생 시기

- Log Switch가 일어날때마다.

- Instance 종료시 (normal, immediate)

- 강제로 실행했을 때 (alter system checkpoint;)

- Tablespace를 Offline했을 때, Online Backup이 시작될 때..


'Oracle > Oracle_Admin1' 카테고리의 다른 글

Undo Segment  (0) 2016.06.29
startup, shutdown 과정  (0) 2016.06.25
(Linux) Oracle Network 설정  (0) 2016.06.22
DB 수동 생성  (0) 2016.06.22
archive mode 변경  (0) 2016.06.22
admin