一、问题:局域网内,两台服务器,分别为db和db2。db机对外提供访问,db和db2都安装了Oracle 12C。

db服务器 做了db2服务器 oracle端口的映射。客户端通过plsql访问db2机,使用的地址是db机提供的映射端口,访问db2。

db2服务器后台发现了很多较长的会话时长,不能自动清理,长期运行,积累多了后导致发生“TNS关闭的错误”或者“会话超过最大数的报错“”。

下面把具体的环境和相关配置进行说明:

二、环境:

db 、 db2 两台服务器,分别安装Oracle 12c

  1. 老库后台会话进程不会自动清理问题。或者不能及时清理。从db机到db2机通过ssh映射连接db2机,客户端通过配置db机的监听,实际监听地址是db2机hcloud和端口,实例名称为db2机hcloud2。
  2. 数据库的配置参考了网络上常规设置

db机:

sqlnet  的ora 设置sqlnet.expire_time =10

 

Oracle通过ssh映射建立的会话session,pmon进程不能自动清理?

db2机:

sqlnet  的ora 设置sqlnet.expire_time = 5

Oracle通过ssh映射建立的会话session,pmon进程不能自动清理?

 

db  db2两台机器进程查询,查询时间2020-9-14

db机 进程查询:

Oracle通过ssh映射建立的会话session,pmon进程不能自动清理?

 

db2机进程查询  ,差不多有100多,6-8月的进程还在。

Oracle通过ssh映射建立的会话session,pmon进程不能自动清理?

 

db 机 上的映射:

 

 

Oracle通过ssh映射建立的会话session,pmon进程不能自动清理?

---4.db2机数据库连接数配置最大值 和 曾经出现过的最大值,

 

 Oracle通过ssh映射建立的会话session,pmon进程不能自动清理?

 

 

 

 

二、

1.最初的解决方案,是使用

alter system kill session ‘sid,seial’;

然后清理服务器后台对应的进程。kill -9 spid。

2.之后查询 干掉sql会话 需要加immediate ,可以不用等pmon进程。会话清理后,后台进程可以同步清理。

Oracle通过ssh映射建立的会话session,pmon进程不能自动清理?

 

从进程看,后台的都是无效状态。

Oracle通过ssh映射建立的会话session,pmon进程不能自动清理?

 

 

三、最近观察了一段时间,db2的服务器Oracle的现成没有自己清理过,db服务器的线程会自己清理,所以怀疑:是否是SSH映射的方式导致了,db2服务器进程杀不干净,或者说pmon清理时间过长,甚至不会清理呢?

大家有没有碰见过这种问题,有什么方式可以避免。

 

相关文章:

猜你喜欢
相关资源
相似解决方案