Notice
Recent Posts
Recent Comments
Link
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Archives
Today
Total
관리 메뉴

DBDBDEEP

Oracle Net 서비스 구성 및 관리 도구 본문

Oracle ADMIN

Oracle Net 서비스 구성 및 관리 도구

Kihwane 2022. 6. 28. 21:52

데이터베이스 간의 통신 구성

사이트 간 데이터나 메시지를 보내려면 두 사이트 모두에 네트워크를 구성해야 한다.

 ㄴ> 네트워크 구성 : 네트워크 연결 + 데이터베이스 링크

 

> 데이터 베이스 링크

-  다른 데이터베이스의 객체에 액세스할 수 있도록 하는 데이터베이스의 스키마 객체

-  원격 데이터베이스에 연결이 설정되는 방식은 데이터베이스 링크를 생성하는데 사용한 connect to 절에 따라 결정

-  데이터 베이스 링크를 생성한 후에는 이를 사용하여 다른 데이터베이스의 테이블 및 뷰를 참조 가능

Dedicated Server

- 한 개의 서버 프로세스에 한 개의 User Process가 연결, 1:1 전담한다.

- 시스템 로드가 많아지면 메모리 및 CPU 리소스가 부족해지고, 확장성이 적어진다.

     ㄴ->  해결책으로 Oracle Shared Server 프로세스 구조를 사용한다.

 

Shared Server

- 적은 서버 프로세스 풀을 많은 수의 클라이언트에 사용 가능

- PGA도 같이 할당받게 된다.

  ㄴ-> 앞에서 PGA는 백그라운드 프로세스와 서버 정보를 갖고 있다고 하였다. 이것을 공유하여 사용하자는 것

-  각 서비스에 디스패처 프로세스가 한 개 이상 있는데, 서버 프로세스를 미리 띄워놓고 디스패처를 통해 유저들의 요청을      순차적으로 처리한다. 한 개의 디스패처는 수백개의 유저 세션을 관리할 수 있다.

Shared 서버  Dedicated 서버 선택하는 방법

tns file

(server=dedicated) 면 전용의 서버를 하나 만들어주고

(server=shared) 면 쉐어드 서버로 해주겠다

 

ALTER SYSTEM shared_server =3;

max_shared_servers = 10

 ㄴ-> 3개는 기본 갯수이며, 추가하고 싶을때마다 추가 하는데 10개가 한계이다.

 

ALTER SYSTEM set dispatchers=‘(pro=tcp)(dis=2)’;

max_dispatchers = 10

  ㄴ-> 2개가 기본. 디스패처는 자동으로 증가하진 않는다.

  프로토콜이 필요한 이유는 디스패처와 리스너가 통신해야 하기 때문이다.

 

Shared Server 를 수행 하지 않아야 하는 특정 데이터베이스 작업 유형

- 데이터베이스 관리

- 백업 및 리커버리 작업

- 일괄처리 및 대량 로드 작업

- 데이터 웨어하우스 작업


Dispatcher 와 Listener를 그림으로 봐보자

 

ALTER SYSTEM shared_server =3;

Shared_Server 를 3개 만들었다.

 

 

ALTER SYSTEM set dispatchers=‘(pro=tcp)(dis=2)’;

D0 디스패처, D1 디스패처, Shared Server 3개가 SGA에 할당

Request Queue : 모든 디스패처에 대해 공용이다.

Response Queue :  디스패처 마다 존재한다. 

 

Dynamic 리스너는 디스패처에 대한 정보를 받을 수 있는데 ,Static 리스너는 받을 수 없다.

 

리스너는 두 디스패처중 한가한 애를 알고 있다가, User 에게 소개한다.

 

 

D0 디스패처가 U랑 연결 되었다.

즉, 유저들이 보내는 명령이 공용인 Request Queue에 들어가고, Response Queue에는 각 디스패처 별로 들어간다.

 

LREG : 오라클 DB의 필수 백그라운드 프로세서이고, 리스너에게 정기적으로 D0,D1에대한 정보도 알려준다.

             LREG에 의해서 리스너에게 정기적으로 전달한다.

이런식으로 작동하는 것이 Shared 서버

 


 

리스너 컨트롤 유틸리티

1. lsnrctl 유틸리티 

- 리스너 관리자 모드

- lsnrctl 명령어로 직접 들어갈 수 있으며, lsntctl _ _ _ 방식으로 기본 프롬프트 에서도 명령어를 수행할 수 있음.

현재의 리스너를 보여달라는  것이다.
진행하는 작업은 current_listener 에 적용된다.

> lsnrctl status

ㄴ-> 현재 Listener는 hostname, protocol, service name, port 순으로 연결중이다.

 

2. tnsping 유틸리티

- Oracle Net 서비스 Alias를 테스트 한다.

- 클라이언트와 Oracle Net 리스너 간 연결 확인

- 실제 connect 단계까지 가지 않고 리스너까지만 연결한다.

- 간단한 연결 이름 분석 지원 (Easy Connect Names Resolution)