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
的s
essions
和
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派生得到