출처 : https://forums.oracle.com/forums/thread.jspa?threadID=467410
작성날짜 : 1997-11-24
MULTIPLE LISTENER의 LOAD BALANCING 및 2개의 NETWORK CARD 사용 시 SETUP
=======================================================
Oracle V7.3의 SQL*Net 2.3의 새로운 기능으로 여러 개의 Listener를 띄우면서 상호
Load Balancing을 유지하는 기능을 소개하고자 한다.
Load Balancing 기능을 이용하여 각각의 Listener와 Oracle Instance 간의 Overloading을 줄일 수 있다.
다음의 예는 하나의 장비 내에 2개의 Network Card가 있을 경우에 대해 setup을 하는 방법이며 만일
하나의 Network Card가 있을 경우는 Host는 하나만 지정하면 된다.
1. init<SID>.ora file을 지정할 Parameter
MTS_MULTIPLE_LISTENERS=TRUE
COMPATIBLE=7.3.2.0
2. 예를 들어 Listener를 2개 사용하는 경우라면 initSID.ora에
mts_dispatchers="tcp,10"
mts_max_dispatchers=20
mts_servers=20
mts_max_servers=40
mts_service=ORA73
mts_listener_address="(address_list=
(address=(protocol=tcp)(port=1621)(host=152.69.30.100))
)"
mts_listener_address="(address_list=
(address=(protocol=tcp)(port=1622)(host=152.69.30.100))
)"
mts_listener_address="(address_list=
(address=(protocol=tcp)(port=1623)(host=152.69.30.102))
)"
mts_listener_address="(address_list=
(address=(protocol=tcp)(port=1624)(host=152.69.30.102))
)"
3. listener.ora file에 설정되는 내용은
LISTENER1 =
(ADDRESS_LIST =
(ADDRESS =
(PROTOCOL = tcp)
(HOST = 152.69.30.100)
(PORT=1621)
)
(ADDRESS =
(PROTOCOL = tcp)
(HOST = 152.69.30.100)
(PORT=1622)
)
)
LISTENER2 =
(ADDRESS_LIST =
(ADDRESS =
(PROTOCOL = tcp)
(HOST = 152.69.30.102)
(PORT=1623)
)
(ADDRESS =
(PROTOCOL = tcp)
(HOST = 152.69.30.102)
(PORT=1624)
)
)
SID_LIST_LISTENER1 =
(SID_LIST =
(SID_DESC =
(SID_NAME = ORA73)
(ORACLE_HOME=/oracle2/ora73/app/oracle/product/7.3.2)
)
)
SID_LIST_LISTENER2 =
(SID_LIST =
(SID_DESC =
(SID_NAME = ORA73)
(ORACLE_HOME=/oracle2/ora73/app/oracle/product/7.3.2)
)
)
STARTUP_WAIT_TIME_LISTENER1 = 0
STARTUP_WAIT_TIME_LISTENER2 = 0
CONNECT_TIMEOUT_LISTENER1 = 0
CONNECT_TIMEOUT_LISTENER2 = 0
4. tnsnames.ora file에 설정되는 내용들
* 다수의 port에 Random하게 접속하는 경우
RANDOM =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS =
(PROTOCOL = TCP)
(Host = 152.69.30.100)
(Port = 1621)
)
)
(CONNECT_DATA =
(SID = ORA73)
)
)
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS =
(PROTOCOL = TCP)
(Host = 152.69.30.100)
(Port = 1622)
)
)
(CONNECT_DATA =
(SID = ORA73)
)
)
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS =
(PROTOCOL = TCP)
(Host = 152.69.30.102)
(Port = 1623)
)
)
(CONNECT_DATA =
(SID = ORA73)
)
)
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS =
(PROTOCOL = TCP)
(Host = 152.69.30.102)
(Port = 1624)
)
)
(CONNECT_DATA =
(SID = ORA73)
)
)
)
* 개개의 Port로 접속하는 경우
TORA1 =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS =
(PROTOCOL = TCP)
(Host =krrcsun)
(Port = 1621)
)
)
(CONNECT_DATA =
(SID = ORA73)
)
)
TORA2 =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS =
(PROTOCOL = TCP)
(Host =krrcsun)
(Port = 1622)
)
)
(CONNECT_DATA =
(SID = ORA73)
)
)
TORA3 =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS =
(PROTOCOL = TCP)
(Host =krrcsun)
(Port = 1623)
)
)
(CONNECT_DATA =
(SID = ORA73)
)
)
TORA4 =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS =
(PROTOCOL = TCP)
(Host =krrcsun)
(Port = 1624)
)
)
(CONNECT_DATA =
(SID = ORA73)
)
)
5. 각각의 Listener를 띄우는 방법
$ lsnrctl start LISTENER1
$ lsnrctl start LISTENER2
'::: DB ::: > Oracle' 카테고리의 다른 글
동적 리스너 등록(PMON) (0) | 2012.05.21 |
---|---|
오라클 세션별 CPU, PGA 사용량 확인 쿼리 (0) | 2012.05.17 |
Useful Metalink Articles (0) | 2012.05.15 |
(Oracle 10g) dbms_stats.gather_schema_stats 수행에 시간이 너무 많이 걸려요. (0) | 2012.03.28 |
ORA-12154: TNS:could not resolve the connect identifier specified (0) | 2012.03.22 |