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]을 클릭하여 설정사항들을 저장한다.
tnsnames.ora 파일을 통해 Service가 잘 등록되었는지 확인한다.
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 |