ORACLE/ADMIN2010. 10. 7. 17:37
반응형
제품 : SQL*NET

작성날짜 : 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>
반응형
Posted by [PineTree]