一、问题分析
oracle服务器上某个数据库出现' ORA-12516: TNS: 监听程序找不到符合协议堆栈要求的可用处理程'错误。问题首先查看一下数据库现有的进程数,是否已经达到参数processes的大小。
二、解决方案
2.1、processes数统计
--查看非使用rac
select count(*) from v$process;
--取得进程数的上限 查看使用rac
select value from gv$parameter where name = 'processes';
--修改processes的值
alter system set processes=1500 scope=spfile sid='orcl1'
alter system set processes=1500 scope=spfile sid='orcl2'
--查看sid的语句
select * from gv$instance;
select instance_name from gv$instance;
2.2、查看session
--查看非使用rac
select count(*) from v$session;
--查看使用rac
select value from gv$parameter where name = 'sessions';
--修改数据
alter system set sessions=2272 scope=spfile sid='orcl1';
alter system set sessions=2272 scope=spfile sid='orcl2';
2.3、连接数查询
----1、查看当前的数据库连接数
select count(*) from v$process;
----2、数据库允许的最大连接数
select value from v$parameter where name ='processes';
----3、修改最大连接数
alter system set processes = 1500 scope = spfile;
----4、查看当前有哪些用户正在使用数据
SELECT osuser, a.username,cpu_time/executions/1000000||'s',b.sql_text,machine
from v$session a, v$sqlarea b
where a.sql_address =b.address order by cpu_time/executionsdesc;
----5、当前的session连接数
select count(*) from v$session
----6、并发连接数
select count(*) from v$session where status='ACTIVE';
2.4、其他常用
--查看自己当前在rac的哪个节点上
select * from v$instance;
--查看哪些参数不需要重启
select name,issys_modifiable from v$system_parameter
where issys_modifiable='FALSE'
更多优秀文章,请扫码关注个人微信公众号或搜索“程序猿小杨”添加