业务报错:
检查process配置及连接数均正常,没有达到上限。
监听日志查看,发现既有专用模式连接,又有共享模式连接:
专用模式正常,查看资源使用情况,没有达到上限,
select * from v$resource_limit;
那么检查共享模式连接,使用情况查看
SQL> set linesize 180
SQL> select s.name,s.paddr,s.status,p.addr,p.spid,p.program from vshared_server s,vprocess p where s.PADDR=p.ADDR;
select to_char(dhs.begin_interval_time,'yyyy-mm-dd hh24:mi:ss'), to_char(dhs.end_interval_time,'yyyy-mm-dd hh24:mi:ss'), li.resource_name, li.current_utilization, li.max_utilization, li.initial_allocation, li.limit_value from dba_hist_resource_limit li, dba_hist_snapshot dhs where li.snap_id = dhs.snap_id and li.resource_name = 'max_shared_servers';
默认情况共享模式是5个连接。
服务器配置
SQL> alter system set max_shared_servers=15;
System altered.
SQL> alter system set shared_servers=5;
System altered.
SQL> alter system set max_dispatchers=15;
System altered.
SQL> alter system set dispatchers='(PROTOCOL=TCP) (disp=5)';
System altered.
SQL> show parameter shared_server
NAME TYPE VALUE
max_shared_servers integer 15 shared_servers integer 5
SQL> show parameter dispatchers
NAME TYPE VALUE
dispatchers string (PROTOCOL=TCP) (disp=5) max_dispatchers integer 15
配置了5个共享服务进程,最大可以增加到15个。
当然了,当前客户要求不使用共享模式,所以关闭共享模式,使用专用模式。
设置max_shared_servers, shared_server_sessions为0,关闭了共享模式,检查监听日志,新进连接是否都是专用模式。