[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 WORKGROUP\XXX84BCP
--//這樣V$ACTIVE_SESSION_HISTORY的CLIENT_ID欄位就有記錄。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/267265/viewspace-2672692/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 20200109 - 名稱空間
- 如何修改mac 下主機名、電腦名、區域網主機名Mac
- Linux中主機名的作用是什麼?如何配置主機名?Linux
- Linux修改主機名(靜態主機名、臨時主機名)Linux
- MAC修改主機名、計算機名Mac計算機
- 如何使用Zabbix API批次修正主機名稱API
- unknown host 主機名
- Linux7修改主機IP及主機名Linux
- ubuntu修改主機名稱Ubuntu
- linux主機名的修改Linux
- win10 主機名修改方法_win10怎麼改主機名Win10
- 如何在 Linux 中顯示和設定主機名?Linux
- Fedora22怎麼更改主機名?Fedora22更改主機名的方法
- CentOS 7 下修改主機名CentOS
- 簡單修改Linux主機名Linux
- Linux hosts主機名不對Linux
- linux 檢視修改主機名Linux
- 主機名和hosts對映
- 如何在Mac 上更改電腦的名稱或本地區域網主機名Mac
- 20200109 - Composer 學習
- 20200109 - Laravel 安裝Laravel
- 14IP地址、主機名、域名
- ORA-00119&ORA-00130&主機名
- JavaScript 獲取主機名程式碼JavaScript
- 如何使用虛擬主機cPanel新建別名共享一個網站網站
- 20200109 - 類的繼承繼承
- Mac電腦名稱和本地區域網主機名?Mac
- Linux中配置網路地址,主機名Linux
- linux22-IP地址和主機名Linux
- Ansible 學習筆記 - 定位主機和組的模式筆記模式
- [Tips] git init如何指定主分支名稱Git
- Oracle中獲取主機名和IP地址Oracle
- linux修改主機名、關閉防火牆、selinuxLinux防火牆
- Linux基礎命令—顯示主機名hostnameLinux
- Linux基礎命令---顯示主機名hostnameLinux
- linux CentOS6.x 修改主機名(Hostname)LinuxCentOS
- Solaris 10.5配置主機名、IP地址、閘道器
- Linux 中改變主機名的 4 種方法Linux