I. Oracle Net
1. Oracle Net 서비스
2. Oracle Net 리스너
II. 이름 지정 방식
1. 간단한 연결(Easy Connect) 이름 지정
2. 로컬 이름 지정
3. 디렉토리 이름 지정
4. 외부 이름 지정
III. 유저 세션
1. Dedicated Server 프로세스
2. Shared Server
① Shared Server 프로세스
② Shared Server: 연결 풀링
③ Shared Server를 사용하지 않는 경우
I. Oracle Net
1. Oracle Net 서비스
• Oracle Net 서비스는 클라이언트 또는 Middle-tier 응용 프로그램에서 Oracle 서버로의 네트워크 연결을 활성화합니다.
• 네트워크 세션이 설정되면 Oracle Net는 클라이언트 응용 프로그램과 데이터베이스 서버 모두에 대해 데이터 전달 수단으로
사용됩니다.
• Oracle Net는 클라이언트 응용 프로그램 및 데이터베이스 서버 간의 메시지 교환뿐만 아니라 연결을 설정하고 유지 관리해야
합니다.
• 데이터베이스 서버의 Oracle Net는 데이터베이스와 외부 응용 프로그램 간의 연결을 조정하는 Oracle Net 리스너라는
활성 프로세스를 포함합니다.
• Oracle Net 서비스는 일반적으로 들어오는 데이터베이스 연결을 허용하는 데 사용됩니다.
2. Oracle Net 리스너
• Oracle Net 리스너(또는 리스너)는 로컬이 아닌 모든 유저 연결을 위한 Oracle Instance의 게이트웨이입니다.
• 단일 리스너는 다중 데이터베이스 instance 및 수천 개의 클라이언트 연결을 지원할 수 있습니다.
• Enterprise Manager는 리스너에 액세스 하는 방법 중 하나입니다.
• 필요한 경우 vi 같은 텍스트 편집기로 구성 파일을 수동으로 편집하여 Oracle Net 서비스를 구성할 수 있습니다.
II. 이름 지정 방식
1. 간단한 연결(Easy Connect) 이름 지정
• 기본적으로 활성화 되어있는 이름 지정 방식입니다
• 클라이언트 측의 구성이 필요 없습니다
• TCP/IP 프로토콜만 지원합니다
• 다음과 같은 고급 연결 옵션을 지원하지 않습니다
৹ Connect-time fallover
৹ 소스 경로 지정
৹ 로드 밸런싱
• 간단한 연결을 사용하여 연결 문자열의 일부로서 Oracle Net 연결에 필요한 모든 정보를 제공할 수 있습니다.
• 간단한 연결에서의 연결 문자열 형식은 다음과 같습니다
৹ <username>/<password>@<hostname>:<listener port>/<service name>
• 리스너 포트 및 서비스 이름은 선택 사항입니다.
• 리스너 포트를 입력하지 않으면 Oracle Net는 기본 포트인 1521을 사용하는 것으로 가정합니다.
• 서비스 이름을 입력하지 않으면 Oracle Net는 연결 문자열에 입력한 데이터베이스 서비스 이름과 호스트 이름이 동일한
것으로 가정합니다.
2. 로컬 이름 지정
•클라이언트 측 이름 분석 파일이 필요합니다
• 모든 Oracle Net 프로토콜을 지원합니다
• 다음과 같은 고급 옵션을 지원합니다
৹ Connect-time fallover
৹ 소스 경로 지정
৹ 로드 밸런싱
• 유저는 로컬 이름 지정을 사용하여 Oracle Net 서비스의 Alias를 제공합니다.
• Oracle Net는 alias를 알려진 서비스의 로컬 리스트와 비교하여 일치하는 것을 발견하면 alias를 호스트, 프로토콜, 포트 및
서비스 이름으로 변환합니다.
• 로컬 이름 지정은 Oracle Net 서비스 구성이 자주 변경되지 않는 조직에 적합합니다.
• 로컬 이름 지정 연결 문자열 형식은 다음과 같습니다.
৹ <username>/<password>@<Alias>
3. 디렉토리 이름 지정
• 로드된 Oracle Net 이름 분석(Names Resolution) 정보와 함께 LDAP 필요합니다
৹ Oracle Internet Directory
-> Oracle 데이터베이스를 데이터 저장소로 사용하는 LDAP 서버입니다.
৹ Microsoft Active Directory Services
-> 네트워크의 개체에 대한 정보를 저장하고 관리자 및 사용자가 이러한 정보를 쉽게 찾아서 사용할 수 있게 해 줍니다.
• 모든 Oracle Net 프로토콜 지원합니다
• 고급 연결 옵션 지원합니다
• 유저는 디렉토리 이름 지정을 사용하여 Oracle Net 서비스의 Alias를 제공합니다.
• 디렉토리 이름 지정의 한 가지 장점은 새 서비스 이름이 LDAP 디렉토리에 추가되는 즉시 유저가 이 서비스 이름을 사용하여
연결할 수 있다는 것입니다.
• 로컬 이름 지정을 사용하는 경우 유저가 새 서비스 또는 수정된 서비스에 연결할 수 있으려면 DBA가 변경된 서비스 이름
정보가 포함되어 있는 갱신된 tnsnames.ora 파일을 배포해야 합니다.
• 디렉토리 이름 지정은 Oracle Net 서비스 구성이 자주 변경되는 구성에 적합합니다.
4. 외부 이름 지정
• 외부 이름 지정 방식은 Net 서비스 이름을 지원되는 비 오라클 이름 지정 서비스에 저장합니다.
• 지원되는 Third-party 서비스는 다음과 같습니다.
৹ NIS(Network Information Service) 외부 이름 지정
৹ DCE(Distributed Computing Environment)의 CDS(Cell Directory Service)
• 외부 이름 지정은 디렉토리 이름 지정과 개념적으로 유사합니다.
III. 유저 세션
1. Dedicated Server 프로세스
• Dedicated Server 프로세스에서는 한 개의 서버 프로세스에 한 개의 User Process가 연결됩니다.
• 각 서버 프로세스는 CPU 주기 및 메모리를 포함하는 시스템 리소스를 사용합니다.
• 시스템에 로드가 많아지면 Dedicated Server 프로세스가 사용하는 메모리 및 CPU 리소스가 많아지고 시스템 확장성에
악영향을 끼칠 수 있습니다.
• Dedicated Server 구조의 리소스 필요량이 많아 시스템에 악영향을 끼치는 경우 다음 두 가지 옵션이 있습니다.
৹ 메모리 및 CPU 용량을 늘려 시스템 리소스를 증가시킵니다.
৹ Oracle Shared Server 프로세스 구조를 사용합니다.
2. Shared Server
① Shared Server 프로세스
• Shared Server 프로세스 구조와 관련된 각 서비스에는 디스패처 프로세스가 한 개(일반적으로 두 개 이상임) 이상 있습니다.
• 연결 요청이 도착하면 리스너가 Dedicated Server 프로세스를 생성하지 않고 각 디스패처에 대한 연결 로드와 함께 각 서비스 이름에 사용할 수 있는 디스패처 리스트를 유지 관리합니다.
• 제공된 서비스 이름을 사용하는 디스패처 중 로드가 가장 적은 디스패처로 연결 요청 경로가 지정됩니다.
• 세션이 지속되는 동안 유저는 동일한 디스패처에 연결됩니다.
• Dedicated Server 프로세스와 달리 단일 디스패처는 수백 개의 유저 세션을 관리할 수 있습니다.
• 디스패처는 유저 요청 작업을 실제로 처리하지는 않고 SGA의 Shared Pool 부분에 위치한 Common Queue에 유저 요청을
전달합니다.
• Shared Server 프로세스는 이 Common Queue에서 요청을 가져온 다음 완료될 때까지 처리하여 Dedicated Server
프로세스 작업의 대부분을 넘겨받습니다.
• 단일 유저 세션에 다중 Shared Server 프로세스에서 처리한 요청이 있을 수 있으므로 일반적으로 PGA에 저장된 대부분의
메모리 구조는 공유 메모리 위치에 두어야 합니다.
• 자동 메모리 관리에 대해 Large Pool이 구성되거나 SGA_TARGET이 설정된 경우 이 메모리 구조는 SGA의 Large Pool
영역에 저장됩니다.
② Shared Server: 연결 풀링
• 연결 풀링 기능을 사용하면 데이터베이스 서버가 idle 세션을 만료시키고 연결을 사용하여 활성 세션을 제공할 수 있습니다.
• idle 논리적 세션은 열린 상태로 남아있고 물리적 연결은 해당 세션에서 다음 요청이 올 때 자동으로 다시 설정됩니다.
• 연결 풀링은 Shared Server를 통해 구성할 수 있습니다.
• 오라클 데이터베이스 서버는 255개의 연결로 구성되며 클라이언트 중 하나는 지정된 시간이 지난 후에 idle 상태로 남습니다.
• idle 클라이언트가 수행할 작업이 더 있는 경우 다른 클라이언트의 idle 연결을 사용하여 해당 클라이언트에 대해 연결이
재설정됩니다.
③ Shared Server를 사용하지 않는 경우
• Shared Server를 사용하여 수행하지 않아야 하는 특적 데이터베이스작업유형입니다
৹ 데이터베이스 관리
৹ 백업 및 recovery 작업
৹ 일괄 처리 및 대량 로드 작업
৹ 데이터 웨어하우스 작업
'ORACLE > 아키텍처' 카테고리의 다른 글
Dynamic Performance 뷰 와 데이터 딕셔너리 (0) | 2023.09.18 |
---|---|
데이터베이스 시작 및 종료 (0) | 2023.09.18 |
데이터베이스의 구조 (0) | 2023.09.13 |