查看进程参数:
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