Oracle DB에 원격으로 접속할 때는 반드시 SQL*Net 이 설치 되어 있어야 합니다. 그리고 이들 SQL*Net이 DB 접속에는 2가지 경로중 하나를 이용하도록 되어있습니다.
Dedicated Server
장점
1. 별도의 파라미터 추가가 또는 설치가 필요없다.
2. 빠르다
단점
유저가 접속할 때마다 프로세스를 생성 한다. (유저가 많을수록 불리하다)
구조
유저가 접속할 때마다 1유저당 하나의 프로세스를 할당하므로 빠르지만 너무 많은 유저가 동시에 접속하게 되면 전체 시스템 부하를 많이 주게 된다.
MTS (Multi-Threaded Server)
장점
1. Server의 자원을 많이 차지하지 않는다.
2. 동시접속 유저가 많을수록 유리하다. (50유저이상)
단점
1. Init*.ora 에 별도의 파라미터가 필요함.
2. 동시접속 유저가 적으면 오히려 자원 낭비 가 심하다.
구조
미리 여러 개의 MTS 프로세스를 생성해 놓고, dispatcher가 접속해오는 유저에게 쉬고있는 MTS 프로세스를 할당해주어 시스템 자원을 일정 하게 사용할 수 있다.
Multi-threaded server 설치 방법
1. MTS 파라미터 설정
initSID.ora 파일에 다음과 같은 내용을 추가하고 DB를 다시 startup 한다.
Mts_dispatchers="tcp,3" # dispatcher 를 3개를 만듬.
Mts_max_dispatchers=10 # dispatcher 최대수는 10개까지.
Mts_servers=5 # mts server 를 5개 만듬.
Mts_max_servers=10 # mts server 최대수는 10개까지.
Mts_service=ORA7 # DB name (SID)
Mts_listener_address="(ADDRESS=(PROTOCOL=tcp)(port=1521)(host=서버의 IP 혹은 name))"
2. tnsnames.ora (Client 측), listener.ora(Server 측) 설정 샘플
# File name : /usr/oracle7/network/admin/listener.ora
#
LISTENER =
(ADDRESS_LIST = (ADDRESS = (PROTOCOL = tcp)
(HOST = [color=RED]서버 IP 혹은 hostname[/color])
(PORT = 1521)
)
)
STARTUP_WAIT_TIME_LISTENER = 0
CONNECT_TIMEOUT_LISTENER = 0
SID_LIST_LISTENER = (SID_LIST = (SID_DESC = (SID_NAME = [color=RED]SID 명칭[/color])(ORACLE_HOME=[color=BLUE]/usr/oracle7[/color]) ) )
# Filename : /usr/oracle7/network/admin/tnsnames.ora
#
접속할 alias명칭 =
(DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = tcp)
(HOST = [color=RED]서버 IP 혹은 hostname[/color])
(PORT=1521)
)
)
(CONNECT_DATA = (SID = [color=RED]SID 명칭[/color]) ) )
[b]3. Listener 기동[/b]
Unix : $lsnrctl start
WinNT : 제어판->SERVICES 에서 ORACLE***listener 를 START
Win95/98/NT : c:\orawin95\bin\lsnrctl.exe start
[b]4. MTS 로 접속 테스트를 해본다.[/b]
$ sqlplus scott/tiger@sample
[b][color=BLUE]MTS 로 설정된 Listener에 Dedicated 방식으로 접속하기[/color][/b]
MTS로 접속하도록 DB 서버에서 설정해 놓았지만 Dedicated로도 접속이 가능하다.
Client 측의 */network/admin/tnsnames.ora 파일을 수정한다.
# Filename : /usr/oracle7/network/admin/tnsnames.ora
접속할 alias명칭 =
(DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = tcp)
(HOST = [color=RED]서버 IP 혹은 hostname[/color])
(PORT=1521)
) )
(CONNECT_DATA = (SID = [color=RED]SID 명칭[/color]) ([color=RED]SRVR=DEDICATED[/color])))
원본출처 : http://members.tripod.lycos.co.kr/jelong/
|