[Oracle]오라클 전용프로세스 공유프로세스
사용자가 오라클서버에 접속하게되면 프로세스가 붙게되는데요
하나의 유저에 하나의 프로세스를 만들어주는것을 전용프로세스라고합니다.
그런데 소량의 작업만 하는 사용자라면 프로세스를 공유해서 사용하는 것이 좋겠죠
이렇게 여러사용자가 프로세스를 공유해서 사용하는 것을 공유 프로세스라고합니다.
프로세스 진행과정
1. 사용자가 리스너에 접속합니다. 리스너는 어떤 디스패처정보를 수집해서 가지고있습니다.
2. 어떤 디스패처가 비어있는지 확인한뒤 비어있는 디스패처를 사용자에게 줍니다.
3. 사용자는 디스패처 정보를 받습니다.
4. request queue(요청대기열)에 사용자가 실행한 sql을 저장합니다.
5. shared server는 request queue를 확인해서 사용자가 실행한 sql문이 있는지 확인한뒤
있을시에 이를 받아서 처리하고 response queue(응답대기열)에 보내줍니다.
(request queue는하나, response queue는 dispatcher갯수와 같습니다.)
6. dispatcher는 response queue를 모니터링해서 자신이 넘겨준 sql실행됬는지 확인한 뒤에
있을시에 이를 받아와서 사용자에게 리턴해줍니다.
실습
만들어놓은 PFILE에 설정을 해보겠습니다.
dispatchers...부분은 위에서 말한 디스패처갯수를 설정하는것입니다.(초기값)
shared_servers = 3 은 3개의 공유서버 프로세스를 만든다는것입니다.(초기값)
max_dispatchers는 최대로 늘어날 디스패처갯수를 나타냅니다.
max_shared_servers는 최대로 늘어날수있는 공유서버 프로세스 갯수입니다.
PFILE을 수정했으니 재부팅을 하겠습니다.
v$shared_server를 조회해보면 몇개의 공유서버프로세스가 만들어졌는지 볼 수 있습니다.
v$dispatcher를 조회해보면 몇개의 디스패처가 만들어졌는지 확인할 수 있습니다.
5개가 나올텐데 너무길어서 하나만해놨어요~
오라클 서버에 접속할때 공유프로세스로 접속할지 전용프로세스로 접속할지 설정할 수 있습니다.
tnsname에 위와같이 설정을 해주면되는데요
위처럼 SERVER=DEDICATED를 붙여주면 전용프로세스로 접속하는것을 나타냅니다.
일반적인 접속은 공유프로세스로 접속하는 것입니다. ㅎ
'컴퓨터 > Oracle' 카테고리의 다른 글
[Oracle]COPY 오라클 데이터복사 (0) | 2014.07.16 |
---|---|
[Oracle]Import Export 데이터 덤프 (0) | 2014.07.16 |
[Oracle]Database link 오라클 데이터베이스 링크 (0) | 2014.07.16 |
[Oracle]Multi listener 오라클 멀티리스너 (0) | 2014.07.16 |
[Oracle]Listener, tnsnames 원격접속 (0) | 2014.07.15 |
댓글