Orcale报错:TNS:listener could not find available handler with matching protocol stack
ORA-12516, TNS:listener could not find available handler with matching protocol stack
ORA-12516: TNS: 监听程序找不到符合协议堆栈要求的可用处理程
ORA-12516:TNS:监听程序无法找到匹配的信息栈的可用句柄错误
ORA-12520:解决方法:查了一下,原来是以前设置共享服务器时SESSION设了170,PROCESSES设了150,
共享服务器时就肯定够用,专用服务器就不行了,后来改为SESSION设555,PROCESSES设500。
重启数据库,正常了。
然后又马上再查了,PROCESSES已经达到140了,奇怪,不可能有这么多人,再查SESSION发现只有30多,
想了一下,哦!原来是共享服务器SHARED_SERVER设了100,就将它改成了10。
解决方法:加大PROCESSES
1.通过SQLPlus修改
Oracle的sessions和processes的关系是
sessions=1.1*processes + 5
使用sys,以sysdba权限登录:
SQL> show parameter processes;
NAME TYPE VALUE
------------------------------------ ----------- ---------------------------------------
aq_tm_processes integer 1
db_writer_processes integer 1
job_queue_processes integer 10
log_archive_max_processes integer 1
processes integer 150
SQL> alter system set processes=400 scope = spfile;
系统已更改。
SQL> show parameter processes;
NAME TYPE VALUE
------------------------------------ ----------- -----------------------------------------
aq_tm_processes integer 1
db_writer_processes integer 1
job_queue_processes integer 10
log_archive_max_processes integer 1
processes integer 150
SQL> create pfile from spfile;
文件已创建。
重启数据库,OK!
【注:sessions是个派生值,由processes的值决定,公式sessions=1.1*process + 5】
2.通过修改oracle配置文件进行修改
修改SPFILEORCL.ORA文件中的processes的值。8.1.5中是init.ora文件,在9i中修改init.ora文件是无效的,这个文件由于是一个二进制的文件,不能直接使用notepad此类的编辑器打开。
否则会报错误ORA-27101 Shared memory realm does not exist。使用UltraEdit或者EditPlus之类的可以编辑二进制文件的编辑器打开此文件(直接编辑二进制文件),然后在Windows服务中重新启动Oracle服务器即可。
3.通过Oracle Enterprise Manager Console在图形化管理器中修改
a.以系统管理员的身份登入
b.进入数据库的例程-配置-一般信息-所有初始化参数
c.修改processes的值
d.Sessions的值由公式sessions=1.1*process + 5派生得到
3.通过Oracle Enterprise Manager Console在图形化管理器中修改
a.以系统管理员的身份登入
b.进入数据库的例程-配置-一般信息-所有初始化参数
c.修改processes的值
d.Sessions的值由公式sessions=1.1*process + 5派生得到