oracle中出现ORA

58次阅读
没有评论

共计 1567 个字符,预计需要花费 4 分钟才能阅读完成。

这篇文章主要介绍了 oracle 中出现 ORA-12520 错误怎么办,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让丸趣 TV 小编带着大家一起了解一下。

ORA-12520: TNS: 监听程序无法为请求的服务器类型找到可用的处理程序

监听日志太大;内存耗尽;os 进程耗尽;CPU 过忙;连接风暴;共享池内存收缩 … 都会导致这种情况
根据网上资料:
当你碰到 ORA-12520 错误时,如下所示:

英文:
ORA-12520: TNS:listener could not find available handler for requested type of server
中文:
ORA-12520: TNS: 监听程序无法为请求的服务器类型找到可用的处理程序

一般你应该从下面两个方面考虑:
1:数据库是专用服务器,但是在 tnsname.ora 配置文件中设置的连接方式是 shared,这种情况需要修改 tnsname.ora 配置文件,这种错误情况一般发生在第一次连接数据库服务器。

如下所示,将数据库服务器关闭共享服务器配置后,然后用 PL/SQL Developer 连接数据库,就会出现 ORA-12520 错误。
alter system set shared_servers=0 scope=both;
 
System altered.

2:运行正常的数据库服务器,突然报 ORA-12520 错误,一般是因为 process 不够引起的。需要增大 processes 参数的值。

然而进过检查服务器、客户端都是 dedicated 模式,且 process 参数足够。。

接着查看监听日志发现达到 4g, 现象是从 1 号开始的,而监听日志不写东西是从上个月 31 号,现象基本符合,可能是由于监听日志过大引起的

解决:
oracle 监听器日志文件过大导致该文件无法更新
解决操作步骤:

lsnrctl set log_status off ### 先把日志状态停掉,这样就不会写监听器日志
现在就可以把 监听器日志文件备份 mv 或是 删掉 rm
lsnrctl set log_status on ### 重新打开日志,开始记录监听器日志。该文件会自动创建

可以执行 lsnrctl status,检查监听器日志文件

切记:不能直接 cat /dev/null listener_testdb1.log 除非在监听器关闭的情况下。
否则,即便文件已经被清空,监听器还是无法执行写入日志的。

另外也可以指定监听器日志文件的名字,而不需要系统生成的文件名:

==========================
如何确定 oracle 数据库的连接模式是专用,还是共享模式

这个问题既与参数 shared_servers、dispatchers 有关,还与服务器、客户端的 TNSname.ora 文件有关系。

在 DB 端的 shared_servers 参数控制 server 是否能接受 share server 连接, 但是,client 可以通过在 TNSname.ora 来设置强制使用 DEDICATED

如下,4 种情况:

DB shared_servers = 0 , TNSname.ora server=shared 或者不设置 == DEDICATED 连接

DB shared_servers = 0 , TNSname.ora server=DEDICATED == DEDICATED 连接

DB shared_servers 0 , TNSname.ora server=DEDICATED == DEDICATED 连接

DB shared_servers 0 , TNSname.ora server=shared 或者不设置 == Shared 连接

感谢你能够认真阅读完这篇文章,希望丸趣 TV 小编分享的“oracle 中出现 ORA-12520 错误怎么办”这篇文章对大家有帮助,同时也希望大家多多支持丸趣 TV,关注丸趣 TV 行业资讯频道,更多相关知识等着你来学习!

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-07-20发表,共计1567字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)