1. 首页
  2. IT资讯

[20200109]主机名如何定位IP.txt

[20200109]主机名如何定位IP.txt

–//论坛自己问的问题.http://www.itpub.net/thread-2123724-1-1.html

> select distinct program,module,action,client_id,machine from V$ACTIVE_SESSION_HISTORY where sql_id='5yqm7qry03mcg' and sample_time > =trunc(sysdate);
PROGRAM MODULE ACTION  CLIENT_ID  MACHINE
——- —— ——- ———- ——————–
                                  WIN-FNKVKB319PM

1 row selected.
–//其它信息都没有,如果知道这个主机名WIN-FNKVKB319PM的IP地址呢?

R:>ping WIN-FNKVKB319PM
Ping 请求找不到主机 WIN-FNKVKB319PM。请检查该名称,然后重试。

–//以前加入登录触发器如下:这样v$session的CLIENT_INFO字段记录了IP地址。
–//注:如果打开DBMS_SESSION.set_identifier (v_client_info),我们生产系统会产生大量trace。
CREATE OR REPLACE TRIGGER SYS.ENABLE_PARA_CURSOR_SHARING
—  10046 TRACELEVELS
   — 0  – Turn off tracing.
   — 1  – Basic SQL_TRACE.
   — 4  – Level 1 plus Bind Variables.
   — 8  – Level 1 plus wait events.
   — 12 – Level 1 plus Bind/Wait event information.
   AFTER LOGON
   ON DATABASE
DECLARE
   v_exe           v$session.program%TYPE;
   v_client_info   v$session.client_info%TYPE;
   v_sid           v$session.SID%TYPE;
   v_osuser        v$session.osuser%TYPE;
   v_machine       v$session.machine%TYPE;
   v_module        v$session.module%TYPE;
   v_ok            VARCHAR (10);
BEGIN
   SELECT NVL(SYS_CONTEXT ('userenv', 'ip_address'),'127.0.0.1') INTO v_client_info FROM DUAL;

   — add and set clint_ip to application_info
   DBMS_APPLICATION_INFO.set_client_info (v_client_info);

   –增加的代码
   —   DBMS_SESSION.set_identifier (v_client_info);
   …
END;
/

–//不过我们在登录是设置DBMS_APPLICATION_INFO.set_client_info (v_client_info);,这样v$session的CLIENT_INFO字段记录了IP地址。

> select distinct client_info from V$SESSION where machine='WIN-FNKVKB319PM';
CLIENT_INFO
——————–
192.168.XXX.XXX

–//只要这台机器登录,就能查询到IP,做一个记录。
–//实际上如果设置DBMS_SESSION.set_identifier (v_client_info),在V$ACTIVE_SESSION_HISTORY的client_id字段就会记录IP地址。
–//自己测试看看:
1.环境:
SCOTT@book> @ ver1

PORT_STRING                    VERSION        BANNER
—————————— ————– ——————————————————————————–
x86_64/Linux 2.4.xx            11.2.0.4.0     Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 – 64bit Production

CREATE OR REPLACE TRIGGER SYS.ENABLE_PARA_CURSOR_SHARING
   —  10046 TRACELEVELS
   — 0  – Turn off tracing.
   — 1  – Basic SQL_TRACE.
   — 4  – Level 1 plus Bind Variables.
   — 8  – Level 1 plus wait events.
   — 12 – Level 1 plus Bind/Wait event information.
   AFTER LOGON
   ON DATABASE
DECLARE
   v_exe           v$session.program%TYPE;
   v_client_info   v$session.client_info%TYPE;
   v_sid           v$session.SID%TYPE;
   v_osuser        v$session.osuser%TYPE;
   v_machine       v$session.machine%TYPE;
   v_module        v$session.module%TYPE;
   v_ok            VARCHAR (10);
BEGIN
   SELECT NVL(SYS_CONTEXT ('userenv', 'ip_address'),'127.0.0.1') INTO v_client_info FROM DUAL;

   — add and set clint_ip to application_info
   DBMS_APPLICATION_INFO.set_client_info (v_client_info);

   –增加的代码
   DBMS_SESSION.set_identifier (v_client_info);
END;
/

2.登录执行:
SCOTT@78> select count(*) from emp,emp,emp,emp,emp,emp,emp;
  COUNT(*)
———-
 105413504

–//确定sql_id=gau6fcukuvcz7.

SCOTT@78> select distinct program,module,action,client_id,machine from V$ACTIVE_SESSION_HISTORY where sql_id='gau6fcukuvcz7' and sample_time > =trunc(sysdate)-1/24;
PROGRAM     MODULE       ACTION CLIENT_ID    MACHINE
———– ———— —— ———— ——————
sqlplus.exe SQL*Plus            192.168.xx.y WORKGROUPXXX84BCP

–//这样V$ACTIVE_SESSION_HISTORY的CLIENT_ID字段就有记录。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/267265/viewspace-2672692/,如需转载,请注明出处,否则将追究法律责任。

主题测试文章,只做测试使用。发布者:深沉的少年,转转请注明出处:http://www.cxybcw.com/183080.html

联系我们

13687733322

在线咨询:点击这里给我发消息

邮件:1877088071@qq.com

工作时间:周一至周五,9:30-18:30,节假日休息

QR code