반응형

Oracle 프로세스 구조는 다중 작업이 발생하는 방법과 다중 작업이 수행되는 방식을 정의

1.단일 프로세스 Oracle Instance :

단일 사용자 Oracle은 하나의 프로세스가 모든 Oracle Code를 실행하는 시스템임.

Oracle의 일부분과 Client응용프로그램을 분리하여 실행하는데 다른 프로세스를사용하지 않음.

대신 Oracle의 모든 코드와 단일사용자의 데이터베이스 응용 프로그램은 단일 프로세스에 의해 실행됨.

 

2.다중 프로세스 Oracle Instance :

다중사용자 Oracle은 여러 개의 프로세스가 Oracle의 각기 다른 부분을 실행하고 접속한 각 사용자들은

개별 프로세스를 실행함.

 

다중 사용자 환경에서 Oracle 프로세스

1. 데이터베이스 기록자(DBWR)

- DataBase Buffer의 내용을 데이터 파일에 기록하는 역할

- DataBase Buffer Cache를 관리하는 Oracle BackGround 프로세스

- DataBase Buffer Cache에 있는 내용이 수정되면 해당 버퍼는 'Dirty'로 표시되는데 이 Dirty Buffer Disk에 기록하여 Buffer Cache를 깨끗한 상태로 유지하는 역할을 함

- LRU 알고리즘에 의해 최근에 사용된 데이터블록을 메모리에 유지함.

- Multi Latch는 공유 데이터구조를 보호하는 자동내부 잠금.

  DB_BLOCK_LRU_LATCHES라는 Parameter는 시스템에 구성되는 래치수와 기본적으로 CPU에 설정되는 Latch 수를 제어

- 서버프로세스가 Buffer Dirty목록으로 이동시킨후 Dirty목록이 임계길이에 도달했음을 발견하면 Server 프로세스는 DBWR에 신호를 보냄

- 체크포인트가 발생하면 LGWR(로그기록자) DBWR에 신호를 보냄. Check Point가 발생하면 LGWR는 디스크에 기록되어야 하는 수정된 Buffer 목록을 지정. DBWR는 디스크에 지정된 Buffer의 내용을 기록함.

 

2. 로그기록자(LGWR)

- Redo Log Buffer를 디스크에 있는 Redo Log File에 등록.

- 사용자 프로세스가 Transaction Commit할때의 Commit Record및 매3초 마다의 Redo Log buffer, DBWR가 수정된 버퍼를 디스크에 기록할때의 Redo Buffer의 내용등을 기록.

- 사용자가 Commit명령을 발생시키면 LGWR Commit Record를 즉시 Redo Log Buffer에 넣지만 해당 데이터 버퍼의 변경은 변경사항을 데이터 파일에 기록하는 것이 더 효율적일때까지 지연됨.

 

3 체크포인트(CKPT)

- Check Point가 발생하면 Oracle은 모든 DataFile Header를 갱신하여 체크포인트임을 나타내야함.

- 보통 LGWR가 이러한 작업을 수행하지만 체크포인트가 시스템 Performance를 저하시킨다면

  CKPT를 활성화하여 체크포인트 수행작업을 LGWR가 수행하는 다른 작업과 분리할 수 있음.

- 체크포인트가 모든 응용프로그램에 꼭 필요한 것은 아니며 DataFile의 수가 많아 Check Point중에 LGWR프로세스 성능이 저하되면 CKPT프로세스를 활성화 가능함.

- 초기화 Parameter CHECK_POINT_PROCESS CKPT프로세스를 활성화 하거나 비활성화함.

 

4. 시스템모니터(SMON)

- 인스턴스 시작시에 인스턴스의 복구를 수행, 더 이상 사용하지 않는 임시 Segment를 삭제하며 사용 가능한 빈영역을 더 큰 블록으로 만들기위해 빈 확장영역을 하나로 통합함.

 

5. 프로세스모니터(PMON)

- 사용자 프로세스에 장애가 발생하면 프로세스 복구를 수행, Cache를 비우고 해당 프로세스가 사용한 자원을 해제하며,활성 Transaction Table상태를 재설정하고 Lock을 해제하며 Active Process목록에서 ID를 제거.

- 주기적으로 Dispatch와 서버 프로세스의 상태를 점검하고 활동중이 아니면 재시작함.

 

6. 복구자(REDO)

- 분산 Transaction을 포함한 장애를 자동으로 해결하는 분산 Option과 함께 사용되는 프로세스, 시스템이 분산 트랜잭션을 허용하고 DISTRIBUTED_TRANSACTIONS 0보다 클때만 존재함.

 

7. 아카이브(ARCH)

- Online Redo Log File이 꽉차면 이를 지정된 저장장소에 저장,Redo Log Archive Mode에서 운영되고 자동 Archiving기능이 활성화 되어 있을 때만 존재함.

 

8. 잠금(LcKn)

- 병렬서버 옵션에서 최대 10개 까지의 잠금Process(LCK0~LCK10)가 인스텀스의 Lock을 제공. 그러나 대부분의 병렬서버 시스템에서는 하나의 LCK프로세스(LCK0)만 으로도 충분함.

 

9. 스냅샷갱신(SNPn)

- 분산 옵션에서 최대 10갸 까지의 스냅샷갱신프로세스(SNP0~SNP10)가 자동으로 Table SnapShot을 화면에 다시 표시

 

10. 디스패처(Dnnn)

- 디스패처 프로세스를 사용하면 사용자 프로세스는 제한된 수의 서버 프로세스를 공유.

- 디스패처가 없다면 각 사용자 프로세스는 하나의 전용(Dedicated)서버 프로세스가 필요함.

- Multi Thread Server에서는 동일한 수의 사용자에 대해 더 적은 수의 공유서버 프로세스를 필요로 함.

- 단일 DataBase Instance에 대해 다중 Dispatcher 프로세스를 생성가능.

- Oracle을 사용하는 시스템의 Network Protocol에 대해 적어도 하나의 디스페처가 생성되어야 함.

- DBA는 프로세스당 접속수에 대한 OS의 한계에 따라 가장 적합한 수의 디스패처를 시작해야 하며

  인스턴스가 실행되는 동안 디스패처 프로세스를 추가 또는 삭제가능함.

- 인스턴스가 시작되면 Listener는 사용자를 Oracle과 접속시키는 통신경로를 설정하며, 각 디스패처는 리스너에 접속 요구사항을 수신할 수 있는 주소를 부여함.

- 사용자 프로세스가 접속을 요구하면 리스너는 요구사항을 점검하고 사용자가 디스패처를 사용할 수 있을지에 대해 결정함.

- 사용할 수 있을 경우 리스너는 로드할 양이 가장적은 디스패처 주소를 돌려주며 사용자 프로세스는 디스패처에 직접 접속됨.

 

반응형


Useful Info

IT News

Site doctor

Domain checker

Icon Generator

Web Tools 1

Web Tools 2

Free Radio

Download videos

솔루션 소개