작성날짜 : 2002-11-29
(9I) 다른 장비에 있는 REMOTE LISTENER 설정하여 로컬 데이타베이스 사용하기
==================================================
PURPOSE
아래의 test는 9i 데이터베이스에서 remote machine에 있는 listener을 사용하는 방법에
대해 다룬다.
Explanation & Example
데이터베이스가 운영중인 machine 은 'krint-5' 이며
listener을 띄울 machine은 'krind2'이다.
< remote machine(krind2)에서의 작업 >
1. remote machine(krind2)에 listener.ora을 만든다.
아래와 같이 SID_LIST_LISTENER 절은 필요치 않으며 LISTENER절만 있으면 된다.
만약 remote machine에도 데이타베이스가 존재한다면 그 데이타베이스를 나타내는
SID_LIST_LISTENER 절을 포함해도 상관이 없다.
ex)
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = krind2)(PORT = 1901))
)
)
)
2. 위와 같이 setup한후 listener를 시작한다.
lsnrctl start
< local machine(krint-5)에서의 작업 >
1. local machine에서 init<SID>.ora에 remote listener을 등록한다.
(만약 spfile을 사용한다면 그에 맞게 수정한다)
*.dispatchers="(protocol=tcp)(disp=4)"
*.remote_listener="(address=(protocol=tcp)(host=krind2)(port=1901))"
( 참고 : listener port응 어떤것을 사용해도 무방하다)
2. 위와 같이 setup이 끝나면 데이타베이스를 새로 시작한다.
< remote machine(krind2)에서의 확인 >
1. remote machine에서 listener.log을 확인한다.
29-NOV-2002 19:31:08 * service_register * ORA920 * 0
29-NOV-2002 19:31:17 * service_update * ORA920 * 0
29-NOV-2002 19:31:20 * service_update * ORA920 * 0
ORA920 이 instance_name 이다.
2. "lsnrctl service" 확인한다.
/home/ora901/product/901/network/admin> lsnrctl ser
LSNRCTL for Linux: Version 9.0.1.4.0 - Production on 29-NOV-2002 19:32:18
Copyright (c) 1991, 2001, Oracle Corporation. All rights reserved.
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=krind2)(PORT=1901)))
Services Summary...
Service "ORA920" has 1 instance(s).
Instance "ORA920", status READY, has 5 handler(s) for this service...
Handler(s):
"DEDICATED" established:0 refused:0 state:ready
REMOTE SERVER
(ADDRESS=(PROTOCOL=TCP)(HOST=)(PORT=1521))
"D006" established:0 refused:0 current:0 max:1002 state:ready
DISPATCHER <machine: krint-5, pid: 5506>
(ADDRESS=(PROTOCOL=tcp)(HOST=krint-5.kr.oracle.com)(PORT=41748))
"D005" established:0 refused:0 current:0 max:1002 state:ready
DISPATCHER <machine: krint-5, pid: 5504>
(ADDRESS=(PROTOCOL=tcp)(HOST=krint-5.kr.oracle.com)(PORT=41747))
"D004" established:0 refused:0 current:0 max:1002 state:ready
DISPATCHER <machine: krint-5, pid: 5502>
(ADDRESS=(PROTOCOL=tcp)(HOST=krint-5.kr.oracle.com)(PORT=41746))
"D003" established:0 refused:0 current:0 max:1002 state:ready
DISPATCHER <machine: krint-5, pid: 5500>
(ADDRESS=(PROTOCOL=tcp)(HOST=krint-5.kr.oracle.com)(PORT=41745))
The command completed successfully
< Client에서 접속해 보기 >
1. 연결을 위해 tnsnames.ora 을 수정한다.
r_list.world =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = krind2)(PORT = 1901))
)
(CONNECT_DATA =
(SERVICE_NAME = ORA920)
)
)
2. sqlplus등으로 점속을 해 본다.
remote machine에 있는 listener.log을 보면 remote listener을 이용하여
local machine에 있는 데이타베이스에 접속이 잘 되었음을 알수 있다.
29-NOV-2002 19:36:48 * (CONNECT_DATA=(SID=ORA920)(CID=(PROGRAM=PLUS33W.EXE)(HOST
=jooyeon-kr)(USER=jooyeon))) * (ADDRESS=(PROTOCOL=tcp)(HOST=152.69.41.120)(PORT=
2865)) * establish * ORA920 * 0
( 참고 : 반드시 MTS을 사용해야 하며 그렇지 않다면 작동하지 않는다.)
RELATED DOCUMENTS
<Note:206550.1>
'ORACLE > ADMIN' 카테고리의 다른 글
Character Set과 Encoding 이해하기 (0) | 2010.11.08 |
---|---|
PCTFREE,PCTUSED,INITRANS,MAXTRANS,FREELIST,NOCACHE (0) | 2010.10.22 |
ORACLE EM 포트 변경 및 관리 명령어 (0) | 2010.04.19 |
ORACLE Datatype Limits (0) | 2010.03.05 |
데이타펌프 (data pump) 특정 테이블을 익스포트 받지 않을 때 (0) | 2010.02.26 |