背景:
AIX上安装oracle 10g
客户突然打电话说连接不上数据库,同事用客户端连接报ORA-12537:TNS:连接关闭,问题提示不够详细,查看告警文件发现里面报
ksvcreate: Process(m000) creation failed
并且查看trc文件,里面说到processes不够,资源不足等提示。
解决方法:
1、先查看aix上用户限制连接数
(1)用户进程数
ps -ef | grep oracle | wc -l
(2)用户最大进程数设置
lsattr -E -l sys0|grep maxuproc ----这个一般都设置成2048
这个需要注意,最大用户进程数需要小于最大里程数设置的大小
2、在查看oracle数据库的进程数设置
(1)查看最大进程数
SQL> show parameter processes
(2)查看最大SESSION数
SQL> show parameter session
一般SESSION=PROCESS * 1.1 + 5
(3)查看目前有多少用户连接数
select t.MACHINE,count(*),sum(count(*)) over() from v$session t where STATUS='ACTIVE' group by machine
3、可以把用户临时杀掉
select 'alter system kill session ''' || sid || ',' || serial# || ''';' from (select sid,serial#,username,program,machine,status from v$session where STATUS='ACTIVE')
4、最根本的解决方法,提高processes
alter system set processes=1000 scope=spfile;
需要重启数据库