티스토리 뷰

ORACLE/ADMIN

Oracle Listener 구성(정적등록vs동적등록)

공부하는알파카 2020. 7. 28. 00:20

Listener

  • 오라클 서버에 접속하기 위해서는 일단 오라클 서버의 리스너가 동작 해야한다. 리스너는 서버와 클라이언트 사이에 Connection을 만들어주는 역할을 한다.
  • 리스너의 구성 파일은 $ORACLE_HOME/network/admin에 있는 listener.ora파일이다.
  • 리스너가 가지고 있어야 하는 정보는 ①프로토콜, ②호스트, ③포트번호, ④서비스네임 이다.

 

 

Listener.ora

오라클 서버에서 클라이언트의 요청을 듣고, 클라이언트와의 통신 환경을 설정하는 파일이다.

즉, 오라클 클라이언트에서 서버로 접속할 때 필요한 프로토콜 및 포트 정보 등을 설정하는 파일이다.

 

 

 

정적등록과 동적등록

오라클 서버에 리스너를 등록하는 두가지 방법이 있다. 하나는 정적등록이고 또 하나는 동적등록이다.

정적등록은 listener.ora 파일에 서버를 직접 등록하는 것이다. 동적등록은 LREG 프로세스가 리스너에 등록 가능한 서비스를 자동으로 등록해주는 것이다. 정적등록과 동적등록의 가장 큰 차이는 오라클 인스턴스가 리스너를 자동으로 인식 하느냐 못하느냐이다.

 

 

 

 

 

정적등록

OS 환경 : Oracle Linux 6.3
DB 환경 : Oracle Database 12.1.0.2
DB shutdown 상태

실습을 시작하기 전에 리스너 설정 파일이 존재하는 위치에 존재하는 파일들을 모두 삭제해주었다.

 

 

[testdb@host01 admin]$ lsnrctl stop

현재 실행중인 리스너가 있다면 중지해준다.



리스너 생성

[testdb@host01 ~]$ netmgr

 

Net Manager를 실행하여 'Listeners'를 선택한 상태에서

왼쪽 상단에 있는 초록색 + 버튼을 클릭하여 리스너의 이름을 설정한다.

 

포트번호는 1521로 설정한다.

 

 

상단에 있는 드랍 박스에서 'Database Services'를 선택 후 리스너를 통해 연결할 Global DB Name, SID를 설정해준다.

 

 

나는 testdb와 PROD 데이터베이스를 등록해주었다.

 

 

 

서비스 네임 등록

netmgr 초기화면에서 'Service Naming' 선택 후 왼쪽 상단의 초록색 + 버튼을 클릭하여 서비스명을 설정한다.

(내가 원하는 아무 별칭이나 적어준다).

 

 

TCP/IP 인터넷 프로토콜을 선택한다.

 

 

Host Name을 적어준다(host ip 주소를 적어도 된다).

*vi /etc/hosts 명령어를 통해 확인할 수 있다.

 

 

Service Name을 적어준다.

이것은 별칭이 아니라 서비를 원하는 실제 DB name을 적어주어야 한다.

 

 

Finish.

 

 

왼쪽 상단 메뉴바의 [File] - [Save Network Configuration]을 클릭하여 설정사항들을 저장한다.

 

 

vi $ORACLE_HOME/network/admin/tnsnames.ora

tnsnames.ora 파일을 통해 Service가 잘 등록되었는지 확인한다.

 

 

vi $ORACLE_HOME/network/admin/listener.ora

listener.ora 파일을 통해 Listener가 잘 등록되었는지 확인한다.

 

 

 

[testdb@host01 admin]$ lsnrctl start

start 명령 뒤에 리스너명을 입력하지 않으면 LISTENER라는 default 명칭의 리스너를 실행한다.

여기서 'UNKNOWN'은 정적등록을 했다는 것을 나타낸다.

 

 

 

[testdb@host01 admin]$ lsnrctl ser

 

 

 

동적등록

OS 환경 : Oracle Linux 6.3
DB 환경 : Oracle Database 12.1.0.2

listener.ora 파일을 열어서 LSNR2라는 이름의 리스너를 직접 생성해주었다.

 

 

[oracle@host01 admin]$ sqlplus / as sysdba
show parameter local_listener

local_listener는 서비스를 등록할 리스너를 나타내는 파라미터이다.

VALUE 값이 없는 것은 default 리스너인 LISTENER를 나타내는 것이다.

 

 

alter system set local_listener='(description=(address=(protocol=tcp)(host=host01)(port=1522)))';

local_listener 파라미터를 변경하여 LSNR2 리스너에 newdb를 동적등록해준다.

 

 

 

show parameter local_listener

 

 

[oracle@host01 admin]$ lsnrctl start lsnr2
[oracle@host01 admin]$ lsnrctl ser lsnr2

'READY'는 동적등록을 했다는 것을 나타낸다.

 

 

 

 

alter system set local_listener='(description=(address=(protocol=tcp)(host=host01)(port=1522)))', '(description=(address=(protocol=tcp)(host=host01)(port=1521)))';

local_listener 파라미터를 여러개 등록할 수도 있다.

'ORACLE > ADMIN' 카테고리의 다른 글

Oracle Shared server, Dedicated server  (0) 2020.07.28
Oracle 네트워크 설정 방식(client-side)  (0) 2020.07.28
Oracle undo 언두 관리  (0) 2020.07.21
Oracle redo log file, control file 다중화  (0) 2020.07.20
Oracle User 유저 생성  (2) 2020.07.19
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   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
글 보관함