监听程序找不到符合协议堆怎么解决

监听程序找不到符合协议堆怎么解决,第1张

服务器上某个数据库出现' ORA-12516: TNS: 监听程序找不谈消乎到符合协议堆栈要求的可用处理程'错误,要解决该问题首先查看一下数据库现有桥态的进程数,是否已经达到参数processes的大小。

a.select count(*) from v$process取得数据库目前的进程数。

b.select value from v$parameter where name = 'processes'取得进程数的上限。

1、查看当前会话数、processes和sessions值,发现session数和2个参数的值已经非常接近

SQL*Plus: Release 11.1.0.6.0 - Production on 星期一 9月 21 9:50:21 2009 Copyright (c) 1982, 2007, Oracle. All rights reserved.

SQL>conn / as sysdba

已连接。SQL>select count(*) from v$session

COUNT(*)----------

45

SQL>show parameter processes

NAME TYPEVALUE

db_writer_processes integer 1

gcs_server_processes integer 0

job_queue_processes integer 10

log_archive_max_processesinteger 2

processesinteger 50

SQL>show parameter sessions

NAME TYPEVALUE

java_soft_sessionspace_limit integer 0l

icense_max_sessions integer 0

license_sessions_warning integer 0

logmnr_max_persistent_sessions integer 1

sessions integer 60

shared_server_sessions integer

2、修改processes和sessions值

SQL>alter system set processes=300 scope=spfile

系统已更改。

SQL>alter system set sessions=335 scope=spfile

系统已更改。

3、查看processes和含悉sessions参数,但更改并未生效

SQL>show parameter processes

NAME TYPEVALUE

db_writer_processes integer 1

gcs_server_processes integer 0

job_queue_processes integer 10

log_archive_max_processesinteger 2

processesinteger 50

SQL>show parameter sessions

NAME TYPEVALUE

license_max_sessions integer 0

license_sessions_warning integer 0

logmnr_max_persistent_sessions integer 1

sessions integer 60

shared_server_sessions integer

4、重启数据库,使更改生效

SQL>shutdown

SQL>startup

SQL>show parameter processes

NAME TYPEVALUE

db_writer_processes integer 1

gcs_server_processes integer 0

job_queue_processes integer 10

log_archive_max_processesinteger 2

processesinteger 300

SQL>show parameter sessions

NAME TYPEVALUE

java_soft_sessionspace_limit integer 0

license_max_sessions integer 0

license_sessions_warning integer 0

logmnr_max_persistent_sessions integer 1

sessions integer 335

shared_server_sessions integer

可能你的监听设置的是动态注册。使用 *** 作系统验证方式登录数据库,修改LOCAL_LISTENER参数,修改后执行REGISTER DATABASE,注册一下。然后再尝试通胡渣过网络连接。

监听设置动态的话注册有两种方式,一种是1521默认端口,默认端口会自动注册。你用的应该是非1521之外的非默认端口,需要手动注册。手动注册就是该LOCAL_LISTENER参数。注意,该参数修改为你tnsnames.ora文件中的服务别名。

或者,将监听改为静态 注册,即信息写裤绝悄入listener.ora文件。

另外还有一种导致12516的可能就是进程数太小,需要修改processes参数,个人觉得你应该不是这宏历个问题。

此问题解决的方法和详细的 *** 作步骤派尘如下:

1、首先,按键盘的组合键“ Win+R”,在运行窗口中输入“ services.msc”,按Enter键确认,如下图所示

2、其次,完成上述步骤后,转到Orcale并启动与Oracle相关的所有服务,如下图所示。

3、接着,完成上述步骤后,转到oracle11g安装目录并找到侦听文件“ listener.ora”,如下图所示。答模

4、然后,完成上述步骤后,打开“ listener.ora”文件,添加或修改SID_NAME名称为数据库实例名称,如下图所示。清羡缓

5、最后,完成上述步骤后,启动数据库并检查状态。 此时,重新连接到PL/SQL将恢复正常,重新运行生产环境并恢复正常,如下图所示。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/8199612.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-14
下一篇 2023-04-14

发表评论

登录后才能评论

评论列表(0条)

保存