Practice 5 : Usage and Configuration of the Oracle Shared Server
1. Server에 접속하여 Oracle Shared Server를 구성합니다. (아래를 참조)
- 초기할당 Dispatcher 개수 : TCP에 대하여 1개
- 초기할당 Shared Server Process 개수 : 1개
- Dispatcher의 최대개수 : 2개
- Shared Server Process의 최대개수 : 6개
# sqlplus '/as sysdba'
SQL> shutdown immediate
SQL> exit
# vi $ORACLE_HOME/dbs/initPROD.ora
......
local_listener=TEST -> 동일한 이름의 Net Service 이름을 tnsnames.ora에 구성
dispatchers="(PROTOCOL=TCP)(DISPATCHERS=1)"
shared_servers=1
max_dispatchers=2
max_shared_servers=6
......
# vi $TNS_AMDIN/tnsnames.ora
======================================== tnsnames.ora ========================================
# 리스터 이름과 동일한 서비스 구성
TEST =
(DISCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL=TCP)(HOST=X.X.X.X)(POST=XXXX))
)
(CONNECT_DATA =
(SERVICE_NAME=PROD.com)
)
)
===============================================================================================
# lsnrctl
LSNRCTL> stop TEST
LSNRCTL> start TEST
LSNRCTL> exit
# sqlplus '/as sysdba'
SQL> startup
SQL> exit
2. Listener Control Utility에서 Dispatcher를 확인합니다.
# lsnrctl
LSNRCTL> services TEST
LSNRCTL> exit
3. 새로운 터미널을 시작하여 로컬접속을 시도하고 다음을 조회해 봅니다.
# sqlplus /nolog
SQL> conn system/manager
SQL> select circuit, dispatcher, server from v$circuit;
( no rows selected -> Shared Server 방식의 접속이 아님! )
4. Network을 통한 접속을 시도합니다.
SQL> conn system/manager@XXX
SQL> select circuit, dispatcher, server from v$circuit;
CIRCUIT DISPATCH SERVER
---------- ---------- ----------
80AE0E80 80C91270 80C90F2C
-> Shared Server 방식의 접속에선 행이 query 됨!
5. Shared Server와 Dispatcher의 상태를 모니터링 합니다.
SQL> select name, status, circuit from v$shared_server;
SQL> select name, status, from v$dispatcher;
6. Dispatcher의 개수를 동적으로 늘리고 그 정보를 모니터링 합니다.
SQL> alter system set dispatchers='(PROTOCOL=TCP)(DISPATCHERS=2)';
SQL> select name, status from v$dispatcher;
SQL> exit
# lsnrctl services TEST
< Optional Practice >
Oracle 8i 이후 Version에서 Instance 자동 등록 기능을 지원 합니다.
이 기능을 사용하면 listener.ora file에 SID_LIST_listener_name Section의 구성이 필요치 않습니다.
다음과 같이 테스트 합니다.
1. initPROD.ora에서 다음의 Parameter가 설정되어 있음을 확인합니다.
- INSTANCE_NAME
- SERVICE_NAMES
2. listener.ora file을 다음과 같이 재구성 합니다. (SID_LIST_listener_name Section제거)
# cd $TNS_ADMIN
# vi listener.ora
======================================= listener. ora =========================================
TEST =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = X.X.X.X)(PORT = XXXX))
)
)
)
LOG_DIRECTORY_TEST=/opt/oracle/product/9.2.0/network/log
LOG_FILE_TEST=TEST.log
=============================================================================================
3. 리스너와 인스턴스를 재시작합니다.
# lsnrctl stop TEST
# lsnrctl start TEST
# sqlplus "/as sysdba"
SQL> startup force
4. 리스너에 인스턴스가 자동으로 등록되었는지 확인합니다.
# lsnrctl status TEST
......
STATUS of the LISTENER
------------------------
Alias TEST
Version TNSLSNR for Solaris: Version 9.0.1.0.0 - Production
Start Date 12-JAN-2003 09:30:52
Uptime 0 days 0 hr. 1 min. 18 sec
Trace Level off
Security OFF
SNMP OFF
Listener Parameter File /opt/oracle/product/9.2.0/network/admin/listener.ora
Listener Log File /opt/oracle/product/9.2.0/network/log/TEST.log
Listening Endpoints Summary...
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=X.X.X.X)(PORT=xxXX)))
Services Summary...
Service "PROD.com" har 1 instance(s).
Instance "PROD", status READY, has 2 handler(s) for this service...
The command completed successfully
5. 클라이언트가 접속을 테스트 합니다.
# sqlplus /nolog
SQL> conn system/manager@xxx
1. Server에 접속하여 Oracle Shared Server를 구성합니다. (아래를 참조)
- 초기할당 Dispatcher 개수 : TCP에 대하여 1개
- 초기할당 Shared Server Process 개수 : 1개
- Dispatcher의 최대개수 : 2개
- Shared Server Process의 최대개수 : 6개
# sqlplus '/as sysdba'
SQL> shutdown immediate
SQL> exit
# vi $ORACLE_HOME/dbs/initPROD.ora
......
local_listener=TEST -> 동일한 이름의 Net Service 이름을 tnsnames.ora에 구성
dispatchers="(PROTOCOL=TCP)(DISPATCHERS=1)"
shared_servers=1
max_dispatchers=2
max_shared_servers=6
......
# vi $TNS_AMDIN/tnsnames.ora
======================================== tnsnames.ora ========================================
# 리스터 이름과 동일한 서비스 구성
TEST =
(DISCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL=TCP)(HOST=X.X.X.X)(POST=XXXX))
)
(CONNECT_DATA =
(SERVICE_NAME=PROD.com)
)
)
===============================================================================================
# lsnrctl
LSNRCTL> stop TEST
LSNRCTL> start TEST
LSNRCTL> exit
# sqlplus '/as sysdba'
SQL> startup
SQL> exit
2. Listener Control Utility에서 Dispatcher를 확인합니다.
# lsnrctl
LSNRCTL> services TEST
LSNRCTL> exit
3. 새로운 터미널을 시작하여 로컬접속을 시도하고 다음을 조회해 봅니다.
# sqlplus /nolog
SQL> conn system/manager
SQL> select circuit, dispatcher, server from v$circuit;
( no rows selected -> Shared Server 방식의 접속이 아님! )
4. Network을 통한 접속을 시도합니다.
SQL> conn system/manager@XXX
SQL> select circuit, dispatcher, server from v$circuit;
CIRCUIT DISPATCH SERVER
---------- ---------- ----------
80AE0E80 80C91270 80C90F2C
-> Shared Server 방식의 접속에선 행이 query 됨!
5. Shared Server와 Dispatcher의 상태를 모니터링 합니다.
SQL> select name, status, circuit from v$shared_server;
SQL> select name, status, from v$dispatcher;
6. Dispatcher의 개수를 동적으로 늘리고 그 정보를 모니터링 합니다.
SQL> alter system set dispatchers='(PROTOCOL=TCP)(DISPATCHERS=2)';
SQL> select name, status from v$dispatcher;
SQL> exit
# lsnrctl services TEST
< Optional Practice >
Oracle 8i 이후 Version에서 Instance 자동 등록 기능을 지원 합니다.
이 기능을 사용하면 listener.ora file에 SID_LIST_listener_name Section의 구성이 필요치 않습니다.
다음과 같이 테스트 합니다.
1. initPROD.ora에서 다음의 Parameter가 설정되어 있음을 확인합니다.
- INSTANCE_NAME
- SERVICE_NAMES
2. listener.ora file을 다음과 같이 재구성 합니다. (SID_LIST_listener_name Section제거)
# cd $TNS_ADMIN
# vi listener.ora
======================================= listener. ora =========================================
TEST =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = X.X.X.X)(PORT = XXXX))
)
)
)
LOG_DIRECTORY_TEST=/opt/oracle/product/9.2.0/network/log
LOG_FILE_TEST=TEST.log
=============================================================================================
3. 리스너와 인스턴스를 재시작합니다.
# lsnrctl stop TEST
# lsnrctl start TEST
# sqlplus "/as sysdba"
SQL> startup force
4. 리스너에 인스턴스가 자동으로 등록되었는지 확인합니다.
# lsnrctl status TEST
......
STATUS of the LISTENER
------------------------
Alias TEST
Version TNSLSNR for Solaris: Version 9.0.1.0.0 - Production
Start Date 12-JAN-2003 09:30:52
Uptime 0 days 0 hr. 1 min. 18 sec
Trace Level off
Security OFF
SNMP OFF
Listener Parameter File /opt/oracle/product/9.2.0/network/admin/listener.ora
Listener Log File /opt/oracle/product/9.2.0/network/log/TEST.log
Listening Endpoints Summary...
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=X.X.X.X)(PORT=xxXX)))
Services Summary...
Service "PROD.com" har 1 instance(s).
Instance "PROD", status READY, has 2 handler(s) for this service...
The command completed successfully
5. 클라이언트가 접속을 테스트 합니다.
# sqlplus /nolog
SQL> conn system/manager@xxx
'[ Programing ] > Database' 카테고리의 다른 글
[Oracle 9i] Fundamentals 2 - Practice 7 (0) | 2010.04.08 |
---|---|
[Oracle 9i] Fundamentals 2 - Practice 5 ( Windows 2000 ) (0) | 2010.04.04 |
[Oracle 9i] Fundamentals 2 - Practice 4 (0) | 2010.03.25 |
[Oracle 9i] Fundamentals 2 - Practice 3 (0) | 2010.03.23 |
[Oracle 9i] Fundamentals 1 (0) | 2010.03.22 |