본문 바로가기
Programming 개발은 구글로/Database

[Database] 전용 서버 프로세스와 공유 서버 프로세스의 차이점

by 40대직장인 2022. 5. 5.

전용 서버 프로세스와 공유 서버 프로세스의 차이점

◆ 전용 서버 프로세스

 

사용자가 SQL*PLUS 툴 또는 응용프로그램을 통해 오라클 서버에 접속하면 2개의 프로세스가 활성화됩니다. 하나는 사용자 프로세스이며 또 하나는 전용 서버 프로세스입니다.

 

최초 오라클 서버를 기본 값으로 설치한 후 데이터베이스에 접속을 요구하게 되면 기본 환경은 전용 서버 프로세스입니다. 한 명의 사용자가 오라클 서버로 접속하게 되면 하나의 전용 서버 프로세스가 활성화되기 때문에 여러 명의 사용자가 접속하게 되면 그때마다 여러 개의 전용 서버 프로세스가 계속 활성화되게 됩니다.

 

그런데 오라클 서버에 접속한 사용자들 중에는 많은 데이터를 입력, 수정, 삭제, 조회하는 사용자도 있지만 접속 후 아무런 일도 하지 않는 사용자들도 있게 마련입니다. 이런 경우 오라클 서버에 접속만 하고 유휴 상태로 남아 있게 되면 결국 불필요하게 시스템의 메모리 공간만 낭비하는 현상을 유발하게 되는 것입니다.

 

이러한 단점에도 불구하고 최초 오라클 서버를 설치하게 되면 기본 환경으로 제공하는 이유는 데이터베이스에 접속한 후 많은 데이터를 처리하는 사용자들에게는 가장 효과적인 접속방법이기 때문입니다.

 

◆ 공유 서버 프로세스

 

하나의 프로세스가 여러 개의 사용자 프로세스에 의해 공유되어 사용되는 구조를 가지고 있습니다. 그렇기 때문에 전용 서버 프로세스 환경보다 훨씬 적은 메모리 공간과 프로세스 수를 통해 시스템의 자원을 보다 효과적으로 사용할 수 있는 방법입니다.

 

공유 서버 프로세스를 사용하기 위해서 필요한 기타 프로세스와 구조체는 공유 서버 프로세스, 리스너 프로세스, 디스패처 프로세스와 SGA 영역에는 요청 큐, 응답 큐가 필요합니다.

 

■ 각 프로세스와 구조체가 어떤 기능을 하는지 처리과정

 

 1. 사용자가 리스터 프로세스에 데이터베이스 접속을 요청합니다.

 2. 리스너 프로세스는 현재 활동 중인 디스패처를 검사합니다.

 3. 분석된 디스패처의 상태정보를 저장합니다.

 4. 그 중에 가장 활동이 적은 작업을 처리하는 디스패처 주소를 사용자에게 리턴해 줍니다.

 5. 사용자는 리스너 프로세스로부터 받은 디스패처 주소를 이용하여 해당 디스패처에 접속한 다음 SQL 문의 실행을

요구합니다.

 6. 디스패처는 사용자의 요구사항을 요청 큐에 저장합니다.

 7. 공유 서버 프로세스 중에 가장 활동을 적게 처리하고 있는 프로세스가 요청 큐로부터 사용자의 요구사항을

읽어옵니다.

 8. 공유 서버 프로세스는 작업을 처리한 후 디스패처 프로세스가 활성화될 때 각각 만들어진 해당 응답 큐에 작업

결과를 저장합니다.

 9. 해당 디스패처는 자신의 응답 큐로부터 결과를 읽어옵니다.

 10. 사용자에게 데이터를 리턴해 주면 모든 작업은 완료됩니다.

 

 

댓글