FireWall이 설치되어있는 경웁니다.
MTS가 아닌경우에는 Listener의 Port만 열어주면 외부에서 들어 올수 있지만 MTS라면 아래의 방법으로 해결하기 바랍니다.
사용하시는 firewall 의 listener port 가 open 되어 있는지 확인해 주십시오.
만약, 서버가 MTS(multi thread server) 를 사용하신다면 아래처럼 dispatcher 의 port 를 미리 지정해서 firewall 에서 listener 이외에 dispatcher port 들도 open 해 주셔야 합니다.
가장 간단히 확인하는 요령은 $ps -ef|grep ora 해보시면
ora815 3901 1 0 10:59 ? 00:00:20 ora_pmon_ORA815
ora815 3903 1 0 10:59 ? 00:00:00 ora_dbw0_ORA815
ora815 3905 1 0 10:59 ? 00:00:00 ora_lgwr_ORA815
ora815 3907 1 0 10:59 ? 00:00:00 ora_ckpt_ORA815
ora815 3909 1 0 10:59 ? 00:00:07 ora_smon_ORA815
ora815 3911 1 0 10:59 ? 00:00:00 ora_reco_ORA815
ora815 3913 1 0 10:59 ? 00:00:00 ora_s000_ORA815
ora815 3915 1 0 10:59 ? 00:00:00 ora_d000_ORA815
ora815 3971 1 0 11:30 ? 00:00:00 /ora/app/oracle/product/815/b
ora815 3985 3734 0 11:40 pts/1 00:00:00 ps -ef
위에 d000 이라는 process 가 있죠? 이녀석이 dispacher 입니다. 만약, ps 명령으로 봤을때 이런 process 가 없다면 MTS 가 아닌 dedicated 방식을 사용하는 것이므로 listener port 만 정확히 firewall 에서 열어주시면 외부에서 접속하는데 문제가 없죠.
MTS Server 를 셋팅하고 Firewall 이 설치되어 있는 시스템에서 외부에 있는 클라이언트에서 접속을 하려고 했을 때 dispatcher 의 포트가 Firewall 에서 개방되어 있지 않아 접속이 안됩니다.
7.3.3 이상 버전에서 Dispatcher 의 Port 를 DB 기동 시 지정할 수 있는 기능이 제공됩니다.
=====================================================================
initSID.ora 파일의 내용을 다음과 같이 바꿉니다.
변경전
======
MTS_DISPATCHERS="tcp,2"
변경후
======
MTS_DISPATCHERS="(ADDRESS=(PARTIAL=TRUE)(PROTOCOL=TCP)
(HOST=144.25.16.201)(PORT=15000))(DISPATCHERS=1)"
MTS_DISPATCHERS="(ADDRESS=(PARTIAL=TRUE)(PROTOCOL=TCP)
(HOST=144.25.16.201)(PORT=15001))(DISPATCHERS=1)"
위와 같이 해주시면 각각의 Dispatcher 가 15000, 15001 Port 를 가지고
기동하게 됩니다. 이때 Firewall 에서는 이 두개의 포트와 Listener 가
사용하는(일반적으로 1521 포트) 포트를 열어주면 접속이 가능합니다.
# SDU/TDU 도 지정할 수 있습니다.
MTS_DISPATCHERS="(DESCRIPTION=(SDU=8192)(TDU=8192)
(ADDRESS=(PARTIAL=TRUE)(PROTOCOL=TCP)(HOST=ukhp55)))
(DISPATCHERS=1)"
위 사항은 반드시 7.3.3 이상 버전에서만 가능합니다.
=======================================================================
테스트 결과입니다.
RC80:/mnt3/rctest80/app/oracle/product/804/dbs> lsnrctl serv LSNR80
LSNRCTL for SVR4: Version 8.0.4.0.0 - Production on 28-OCT-98 11:30:33
(c) Copyright 1997 Oracle Corporation. All rights reserved.
Connecting to (ADDRESS=(PROTOCOL=TCP)(Host=o200)(Port=1527))
Services Summary...
RC80 has 3 service handler(s)
DEDICATED SERVER established:0 refused:0
LOCAL SERVER
DISPATCHER established:0 refused:0 current:0 max:254 state:ready
D000
(ADDRESS=(PROTOCOL=tcp)(DEV=17)(HOST=152.69.16.63)(PORT=15000))
DISPATCHER established:0 refused:0 current:0 max:254 state:ready
D001
(ADDRESS=(PROTOCOL=tcp)(DEV=17)(HOST=152.69.16.63)(PORT=15001))
The command completed successfully
한국 Oracle에서 인용한 자료입니다.
|