oracle 共享服务器 配置

查看进程参数:

SQL> show parameter processes

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
aq_tm_processes                      integer     0
db_writer_processes                  integer     1
gcs_server_processes                 integer     0
global_txn_processes                 integer     1
job_queue_processes                  integer     1000
log_archive_max_processes            integer     4
processes                            integer     150

查看session信息:

SQL> show parameter sessions

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
java_max_sessionspace_size           integer     0
java_soft_sessionspace_limit         integer     0
license_max_sessions                 integer     0
license_sessions_warning             integer     0
sessions                             integer     248
shared_server_sessions               integer

dispatcher 为指定的协议指定调度进程的初始数量
这里为TCP协议配置了2个调度进程,IPC协议配置了1个调度进程

SQL> show parameter dispatcher
NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
dispatchers                          string      (PROTOCOL=TCP) (SERVICE=orclXDB)
max_dispatchers                      integer
SQL> alter system set dispatchers='(PROTOCOL=TCP)(DISPATCHERS=2)(PROTOCOL=IPC)(DISPATCHERS=1)';
系统已更改。

最多启动2个调度程序:

SQL> alter system set max_dispatchers=2;        ##调度进程的最大数量
系统已更改。

shared_server_sessions:共享服务器模式最多可以有多少个session,如果共享服务器模式连接数超过此设置则会使用专用服务器模式,注意此值要小于数据库中sessions的设置。如果此值不设置则会所有session都为共享服务器模式、

SQL> show parameter shared_server

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
max_shared_servers                   integer
shared_server_sessions               integer
shared_servers                       integer     1
SQL> alter system set shared_servers=2;         ##初始启动2个共享服务器进程
系统已更改。

SQL> alter system set max_shared_servers=5;    ##最多启动5个共享服务器进程	
系统已更改。

SQL> alter system set shared_server_sessions=15;
系统已更改。

circuits:共享服务器模式下oracle采用了virtual circuits来记录了哪个请求来自于哪个客户端,以保证请求处理完后能返回正确的客户端。circuits的设置限制了请求队列和响应队列中可用回路的总数量。共享服务器模式下只有一个请求队列,但每个dispatcher有自己的响应队列。

SQL> show parameter circuits

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
circuits                             integer
SQL> alter system set circuits=5000;
系统已更改。


large_pool_size:由于在UGA在large_pool中,所以large_pool的合适大小有助于提升系统的性能,能放下所有共享服务器进程的UGA就好。

SQL> show parameter large_pool

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
large_pool_size                      big integer 0
SQL> alter system set large_pool_size=200M;
系统已更改。

配置完毕,现在来查看 调度进程:

SQL> select name from v$dispatcher;

NAME
----
D000
D001

可以看到已经启动了两个调度进程

--------------------------------------------------------------------------------------------

共享服务器模式必须要配置tns才能进行连接:

提前配置好 环境变量 

TNS_ADMIN=XXX:\app\Administrator\product\11.2.0\dbhome_1\NETWORK\ADMIN\tnsnames.ora

D:\app\Administrator\product\11.2.0\dbhome_1\NETWORK\ADMIN\tnsnames.ora:(修改之前)

# tnsnames.ora Network Configuration File: D:\app\Administrator\product\11.2.0\dbhome_1\network\admin\tnsnames.ora
# Generated by Oracle configuration tools.

LISTENER_ORCL =
  (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))


ORACLR_CONNECTION_DATA =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
    )
    (CONNECT_DATA =
      (SID = CLRExtProc)
      (PRESENTATION = RO)
    )
  )

ORCL =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED) 
      (SERVICE_NAME = orcl)
    )
  )
idle>conn scott/pwd@orcl as sysdba
已连接。
sys@ORCL>select server from v$session;

SERVER
---------
DEDICATED
DEDICATED
DEDICATED
DEDICATED
DEDICATED
DEDICATED
DEDICATED
DEDICATED
DEDICATED
DEDICATED
DEDICATED
DEDICATED
DEDICATED
DEDICATED
DEDICATED
DEDICATED
DEDICATED
DEDICATED
DEDICATED
DEDICATED
DEDICATED
DEDICATED
DEDICATED
DEDICATED

已选择24行。

----------------------------------------------------------------------------------------------------------

修改之后:


仅仅把上图红框中的 SERVER = DEDICATED 改为 SERVER = shared 即可。 

退出重登:

sys@ORCL>exit
从 Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options 断
开

C:\Users\Administrator>sqlplus /nolog

SQL*Plus: Release 11.2.0.1.0 Production on 星期五 4月 13 20:58:58 2018

Copyright (c) 1982, 2010, Oracle.  All rights reserved.

idle>conn scott/pwd@orcl as sysdba
已连接。
sys@ORCL>select server from v$session;

SERVER
---------
DEDICATED
DEDICATED
DEDICATED
DEDICATED
SHARED
DEDICATED
DEDICATED
DEDICATED
DEDICATED
DEDICATED
DEDICATED
DEDICATED
DEDICATED
DEDICATED
DEDICATED
DEDICATED
DEDICATED
DEDICATED
DEDICATED
DEDICATED
DEDICATED
DEDICATED

已选择22行。

存在shared,共享服务器模式配置成功。

找到本session对应的spid:

SQL> select p.spid from v$session s,v$process p where s.sid=userenv('sid') and s.paddr=p.addr;

SPID
------------------------
2116

SQL> SELECT s.username, s.sid, s.serial# FROM v$session s, v$process p WHERE s.p
addr = p.addr AND p.spid = 2116;

USERNAME                              SID    SERIAL#
------------------------------ ---------- ----------
SYS                                    6       34

猜你喜欢

转载自blog.csdn.net/a0001aa/article/details/79915439