각 서버설정에 대한 설명은 있지만 단순 이것만 가지고는 어떤 장애 상황이 있다는 것은 말하기 힘들 것 같습니다.

 

일단 프로세스에 대해 보면

 

Process Structure

User Process : 사용자가 오라클 Application Program을 실행 시켰을 때 사용되는 프로세스 (sqlplus, toad, orange등등)

 

Server Process : SQL>에서 수행하는 모든 문장을 오라클에게 전달해서 실행해줍니다.

1) Dedicated Server,  2) Shared Server 두 가지 방식이 있습니다.

 

다시 이 서버에 대해 장 단점을 보면

1) Dedicated Server: Server Process의 종류 중 하나로 User Process가 Server Process에 접속하게 되면 새로운 Server Process를 만들어서 1:1 방식으로 운영되는 서버

   장점 : Server Process의 다른 방식인 Shared Server에 비해 관리가 쉬움

   단점 : 메모리 사용량이 크다

2) Shared Server(=MTS(Multi Thread Server)) : Server Process의 종류 중 하나로 하나의 Server Process를 여러 User Process가 공유해서 사용하는 것(반대 : Dedicated Server)

   장점 : 메모리 사용량이 적다

   단점 : Server Process가 죽으면 모든 User Process가 Rollback된다. (관리가 힘들다)

 

위와 같이 정리 할 수 있습니다.

 

==========

SERVER = DEDICATED -> 오라클 서버와 연결 시 생성된 프로세스를 전용으로 사용한다는 의미이다.

오라클은 기본적으로 Dedicated Server(전용 서버)방식 혹은 Shared Server(공유 서버)방식으로 운용하게 되는데

Dedicated Server 방식의 경우에는 클라이언트와 서버가 연결이 되면 해당 프로세스가 생성되어 클라이언트가 단독으로 해당 프로세스를 사용하도록 한다.

이와 반면 Shared Server방식은 클라이언트와 서버가 연결이 되면 이미 실행중인 프로세스를 공유하여 사용하도록 한다.

다른말로 설명하면 하나의 프로세스에 하나의 클라이언트만을 사용하게 하는 것이 Dedicated 하나의 프로세스에 다수의 클라이언트가 사용하는 것을 Shared라 한다.

두개의 방식은 각각 장단점이 있는데 Dedicated의 경우는 프로세스를 클라이언트 하나만 단독으로 사용함으로써 사용자로 하여금 빠른 처리가 가능하도록 하는 반면 다수의 접속자가 있는 경우에는 그만큼의 다수의 프로세스를 생성시킴에 따라 서버에 부하가 걸리게 되며, Shared의 경우는 다수의 사용자가 연결하더라도 비교적 소수의 프로세스만이 활성화 되지만, 각각의 사용자의 업무 처리 시간에 손실이 발생하게 된다.

 

# Shared Server 커넥션

이제 shared server 프로세스를 좀 더 자세히 살펴보자.
shared server 커넥션은 클라이언트와 서버가 동일한 장비에 있더라도 Oracle Net을 강제적으로 사용한다(사용자는 Oracle TNS 리스너를 사용해야 shared server를 사용할 수 있다).
앞에서 설명했듯이 클라이언트 애플리케이션은 오라클 TNS 리스너에 연결한 다음, dispatcher로 방향을 바꾸고 요청을 넘겨준다.
dispatcher는 클라이언트 애플리케이션과 shared server 프로세스 간의 파이프처럼 작동한다.

오라클 라이브러리를 링크한 클라이언트 애플리케이션은 물리적으로 dispatcher 프로세스와 연결되어 있음을 볼 수 있다.
한 개의 인스턴스에 여러 개의 dispatcher를 둘 수 있지만, 수백(혹은 수천) 명의 사용자를 위해 한 개의 dispatcher만 두는 경우도 종종 있다.
dispatcher는 단순히 클라이언트 애플리케이션이 보낸 요청을 받아서 SGA의 요청 큐(request queue)에 넣는 역할을 수행한다.
미리 생성된 shared server 프로세스 중에서 첫 번째로 가용한 shared server 프로세스는 큐로부터 요청을 꺼내어 관련된 세션의 UGA에 집어 넣고(그림 5-2에서 'S' 박스들), 그 요청을 처리한 다음 결과를 응답 큐(response queue)에 넣는다.
dispatcher는 항상 응답 큐를 감시하고 있다가 해당 요청에 대한 결과를 찾으면 클라이언트 애플리케이션으로 되돌려준다.
클라이언트 입장에서 보면, 자신이 dedicate server로 연결되어 있는지 아니면 shared server 로 연결되어 있는지 구분할 수 없으며 동일하게 보인다.
데이터베이스 수준에서만 뚜렷한 차이점을 보인다.

shared server process : user process = M:N ( M<N)

사업자 정보 표시
(주)블루원 | 김홍태 | 서울특별시 용산구 원효로 4가 135 금홍 2빌딩 | 사업자 등록번호 : 106-86-76684 | TEL : 02-3272-7200 | Mail : support_ora@blueone.co.kr | 사이버몰의 이용약관 바로가기

+ Recent posts