如何启用Oracle Shared Server(三)

2014-11-24 08:51:03 · 作者: · 浏览: 2
tatus READY, has 2 handler(s) for this service...
Handler(s):
"DEDICATED" established:0 refused:0 state:ready
LOCAL SERVER
"D000" established:0 refused:0 current:0 max:1022 state:ready
DISPATCHER
(ADDRESS=(PROTOCOL=ipc)(KEY=#19006.1))
Service "gt10gXDB" has 1 instance(s).
Instance "gt10g", status READY, has 1 handler(s) for this service...
Handler(s):
"D002" established:0 refused:0 current:0 max:1022 state:ready
DISPATCHER
(ADDRESS=(PROTOCOL=tcp)(HOST=test)(PORT=47446))
Service "gt10g_XPT" has 1 instance(s).
Instance "gt10g", status READY, has 2 handler(s) for this service...
Handler(s):
"DEDICATED" established:0 refused:0 state:ready
LOCAL SERVER
"D000" established:0 refused:0 current:0 max:1022 state:ready
DISPATCHER
(ADDRESS=(PROTOCOL=ipc)(KEY=#19006.1))
The command completed successfully
比较下可以看到最大的变化就是共享服务器在监听信息中体现出了调度进程"D000"。
接下来我们通过修改tnsname配置参数来实际连接,再通过视图可以看到我们已经有一个共享模式连接到服务器了:
GT10G4 =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.4)(PORT = 1521))
(CONNECT_DATA =
(SERVER = SHARED) #重点在这里
(SERVICE_NAME = gt10g)
) www.2cto.com
)
sys@GT10G> Select Count(*) From V$CIRCUIT;
COUNT(*)
----------
1
那么,如果我们没有配置共享服务模式的参数,但是客户端配置了使用共享模式连接,会是什么结果呢?
alter system set DISPATCHERS="(PROTOCOL=TCP) (SERVICE=gt10gXDB)";
alter system reset DISPATCHERS scope=spfile sid='*';
尝试了上述两条语句发现还是无法恢复内存中的参数值,只好重启数据库,发现还是不行,后来搜索了下发现直接清空即可:
sys@GT10G> alter system set dispatchers='' scope=both;
System altered.
sys@GT10G> show parameter disp;
NAME TYPE VALUE
------------------------------------ -------- ------------------------------
dispatchers string
max_dispatchers integer
这个时候在客户端继续尝试用共享模式连接会发现报错了:
C:\Users\Administrator>sqlplus gtlions/gtlions@gt10g4
www.2cto.com
SQL*Plus: Release 10.2.0.1.0 - Production on 星期二 8月 14 15:41:14 2012
Copyright (c) 1982, 2005, Oracle. All rights reserved.
ERROR:
ORA-12520: TNS: 监听程序无法为请求的服务器类型找到可用的处理程序
-The End-
作者 gtlions