日期:2014-05-16  浏览次数:20495 次

工作中遇到ora-12520和ora-12516错误的解决办法

首先说明一下这个错误的原因是session和process的连接已满所致.

?

查看session和process的使用数量:

select count(1) from v$session ;?

select count(1) from v$process ;

显示session和process的最大值:

show paramater session;

show parameter process;

?

设置session和process必须得有dba权限.

?

alter system set processes=200 scope=spfile;
session是个派生值,由process来决定,自动生成.生成公式为:sessions=1.1*processes+5.

?

下面是工作中解决问题的步骤:

?

1.登录到Linux服务器中在root用户下输入命令df -h,查看磁盘空间.正常.
2.登录到Linux服务器中在oracle用户下(su - oracle)输入命令crs_stat -t查看数据库实例的状态.都为ONLINE,正常.
3.试图在服务器上用sqlplus方法连接数据库,也没有成功.
4.试图用shutdown immediate和shutdown abort来停止数据库,也没有成功,报错为:ora-24324,ora-24323,ora-00020.
5.reboot服务器,起来之后能成功登录到数据库,输入命令show parameter session和show parameter process显示的结果为,session和process的最大连接数为300和335,属于正常.
6.运行命令select count(1) from v$session和select count(1) v$process执行的结果都在200以上,在数据库刚启动的情况下,会话和进程数就已经达到200以上了,这说明数据库还是不正常.
7.此时我在WebSphere上重启了一下应用,起来之后发现可以正常登录,便是左边的菜单还是不能正常显示,我查看了一下后台日志,后台显示有50几个进程被挂起.我想这就是数据库的session和process居高不下的原因吧.
8.在WebSphere中登上集群上的所有server,之后分别到相应节点中停止node,再到主控节点停止Manager,最后reboot所有节点所在机器.
9.机器正常启动后,先到主控节点startManager和startNode再到其他被控节点startNode.
10.到WebSphere上启动所有server,再到Web服务器中启动WebServer(这个是控制集群的).