我看到有许多连接位于我们的数据库(gv$session)模块中,名为“(TNSV1-V3)”,程序也与“(TNSV1-V3)”相同。这些连接是不活动状态,并且在两个db节点上也不平衡。我们有两个节点的RAC设置(11.0.2.3) (oracle超级集群)。
由于其中一个节点中的高连接,所有应用程序服务都连接到特定的db节点。示例node-2。在高负载CPU使用率上升期间。如何减少或删除这些连接。任何建议都会有很大帮助。
发布于 2019-07-02 00:35:57
这些都是通过TNS侦听器发生的任何连接。如果它们处于非活动状态,除非会话总数达到数据库参数sessions
,否则它们不会真正造成问题,在这种情况下,该节点将停止接受新连接。我将检查您正在使用的应用程序是否正在使用连接池,以及连接池是否已正确配置为在一定的空闲时间后断开其会话。请为您的Oracle版本添加一个标记,如oracle12c
。您还可以查看TNS侦听器日志文件;
lsnrctl show log_directory
要显示监听程序日志文件的位置,请执行以下操作。
另外,请尝试执行以下查询,查看实例的sessions
限制是否接近限制:
select a.inst_id, a.value,
count(b.sid) as sessions_used,
to_number(a.value) - count(b.sid) as avail_sessions
from gv$parameter a, gv$session b
where a.name='sessions' and a.inst_id=b.inst_id
group by a.inst_id, a.value
我在非RAC数据库上的结果:
INST_ID VALUE SESSIONS_USED AVAIL_SESSIONS
---------- ------ ------------- --------------
1 772 74 698
https://stackoverflow.com/questions/56803989
复制相似问题