进程数越来越多的原因比较多。例如:客户端增多、一个客户端打开多个任务、失败进程增多、应用程序没能正常结束等等。对于客户端的增多和多开任务是人为的比较好控制,而应用程序不能正常退出可以调整应用程序即可。问题失败进程,它是属于系统问题,与服务器的连接模式和网络通讯稳定性直接相关。
Oracle的后台进程PMON进程监控进程是专门清理死进程的。它定期被唤醒进行清理死进程,但出现的死进程过多来不及清理,那么进程数就会不断地增多最后可能出现客户端无法登入的现象了。
Oracle服务器目前主要采用两种连接方式:专用方式DEDICATED和共享方式SHARED。专用方式是每一个客户端的用户进程对应一个服务器进程为其服务,即使该服务器进程失败变成死进程了也不会影响其他用户的请求。而共享连接方式下,一个服务器进程为很多个客户的用户进程服务的,它是按照队列一个一个进行处理的,当第一个用户进程结束之前后面用户进程需要进行等待。
查看ORACLE最大进程数:SQL>select count(*) from v$session #连接数
SQL>Select count(*) from v$session where status='ACTIVE' #并发连接数
SQL>show parameter processes #最大连接
SQL>alter system set processes = value scope = spfile重启数据库 #修改连接
unix 1个用户session 对应一个 *** 作系统 process
而 windows体现在线程
------------------------------------------------------------------------------
修改ORACLE最大进程数:
使用sys,以sysdba权限登录:
SQL>show parameter processes
NAME TYPEVALUE
------------------------------------ ----------- ------------------------------
aq_tm_processes integer 1
db_writer_processes integer 1
job_queue_processes integer 10
log_archive_max_processesinteger 1
processesinteger 150
SQL>alter system set processes=300 scope = spfile
系统已更改。
SQL>show parameter processes
NAME TYPEVALUE
------------------------------------ ----------- ------------------------------
aq_tm_processes integer 1
db_writer_processes integer 1
job_queue_processes integer 10
log_archive_max_processesinteger 1
processesinteger 150
SQL>create pfile from spfile
文件已创建。
重启数据库,
SQL>show parameter processes
NAME TYPEVALUE
------------------------------------ ----------- ------------------------------
aq_tm_processes integer 1
db_writer_processes integer 1
job_queue_processes integer 10
log_archive_max_processesinteger 1
processesinteger 300
selectcount(*)
from
v$process
--当前的连接数
select
value
from
v$parameter
where
name
=
'processes'
--数据库允许的最大连接数
修改最大连接数:
alter
system
set
processes
=
300
scope
=
spfile
重启数据库:
shutdown
immediate
startup
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)