使用场景

某些情况下,一些客户端上执行的程序性能有问题,或者程序中用户密码不对,重复登录造成用户被锁,这个时候都需要我们去定位有问题的客户端IP,然后进行处理。

方案介绍

一般情况下,快速定位客户端IP通畅有3种方法:

  1. 创建触发器。该方法对生产系统还是有负担的,生产环境下一般不推荐,如果有想了解的可以参考我之前的文章进行改写,功能大致相似,根据自己需求修改即可。
  2. 查看监听日志。我们也可以去监听日志中查询客户端IP,该方法对业务不会有影响,也是一种快速检索方法,该方法比较简便,本次不做详细介绍。
  3. 通过端口号查找,在数据库中找到客户端访问端口,可以直接在操作系统上找出相应IP,本次介绍该种方法。

操作方法

在Oracle的v$session中,有一个port字段,这个字段是记录的客户端登录数据库服务器时分配的端口号。

定位连接oracle的客户端IP_IP


上图中我们可以查出每个会话登录的端口号,然后可以使用下面的netstat命令即可找出具体IP。

netstat -na |grep 1521|grep ESTABLISHED|grep port

定位连接oracle的客户端IP_端口号_02