解决ORA-3136(二)——找出货源

    修改过以后先好点,过一段时间还是报错ORA-12516:TNS: 监听程序找不到符合协议堆栈要求的可用处理程,看一下session数,又快要满了,看来要仔细查查看了。

首先,我们看一下哪台机器搞鬼。

SQL> select MACHINE,count(*)fromv$session groupby MACHINE



我们发现tvmall这台机器在搞什么飞机啊,怎么多连接,问了一下是谁的机器,都说不知道。想想看利用TERMINAL字段能不能把ip查出来。

SQL> selectutl_inaddr.get_host_address(terminal)fromv$session where machine='tvmall';

 

UTL_INADDR.GET_HOST_ADDRESS(TERMINAL)

--------------------------------------------------------------------------------

202.102.110.206

202.102.110.206

202.102.110.206

202.102.110.206

202.102.110.206

202.102.110.206

不行,那我们可以利用其它方法了。


1)我们利用v$session和v$process视图把进程id拿出来

SELECT s.machine,p.*

  FROMv$session s,v$process p

 WHERE s.PADDR =p.ADDR AND S.MACHINE ='tvmall';

2)通过netstat-natp |grep $PID在linux里把ip找出来

[oracle@SHOW-100-12 admin]$ netstat-natp|grep 86

(Not all processes could be identified,non-owned process info

 willnot be shown, you would have to be root to see it all.)

tcp       0      0 192.168.100.12:1521         192.168.8.41:55654          ESTABLISHED 16186/oraclejscn

3)让这家伙把程序里面的连接重新修改。


你可能感兴趣的:(oracle,sql,linux,tcp,session,Terminal)