由于某个会话大量消耗数据库资源导致数据库性能下降的情况发生时,我们往往希望快速定位这个会话是有哪台主机发起的,而v$session中的machine字段可以快速定位主机名,但是大多数情况下我们更希望确认的是远程主机的ip地址(在无DNS的情况下),下面是我自己总结的在window,linux,aix三种平台下定位的方法:
window平台下:
通过netstat -ano命令可以以ip地址的形式显示与本机建立的网络连接并且显示进程的pid,显示pid是有选项-o决定的。
linux平台下:
通过netstat -anp命令也可以达到以上效果,这里的-p选项相当于window平台下的-o选项
aix平台下:(5.3)
在aix下无论是-o或者-p选项都无法显示server process的pid,我们可以下载安装lsof命令,然后通过lsof -p pid -n -i :1521 -P,这里稍微解释一下:
-p:后面接的是server process的pid
-n:为显示ip地址(默认是主机名)
-i:后接的是端口号(这里为监听的端口)
-P:为显示端口号(默认是显示端口名)
这里有一点说明一下,lsof命令测试是在linux上进行的,所以不敢保证在aix上安装lsof命令会与linux上一模一样。。。 因为就拿netstat命令来说在window,linux,aix三个平台上各有差异,不过大部分是相似的。。。
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/20801486/viewspace-723114/ ,如需转载,请注明出处,否则将追究法律责任。