ORA-12516 TNS: 监听程序找不到符合协议堆栈要求的可用处理程序

问题场景

之前有一个库一直作为测试用(部门A),昨天晚上因另一个测试部门(部门B)过来测试程序,在这库上建立了两个用户并导入了数据,今天下午突然接这两个部门人员电话说数据库一会掉一会又能连接上。当时感觉挻奇怪的,因为10分钟前我还用其他用户连接过这个库。结果当通过客户端测试就报ORA-12516 TNS: 监听程序找不到符合协议堆栈要求的可用处理程序。

看到这个错误时并没有反映过来到底是哪里出错了,接着部门A的负责人就叫我把部门B数据导出来,让他们重新找台机器去测试。后面我在服务器上导这两个用户的数据时也是直接报错,接着我用那两个用户之一登陆数据库时,看到比较明显的错误信息:数据库的最大进程数据是150,到这里就知道是什么原因引起的?

解决方法

1、通过sysdba用户登陆

2、查看当前进程数

select count(*) from v$processes

看到149个进程

show parameter processes的值为150(当时数据库是另外一个人建立的)

3、 更改进程数

alter system set processees=500 scope=spfile

4、 关闭数据库

shutdown immediate

5、 启动数据库使配置生效

startup;

相关推荐