今天有人问如果在 linux下top显示某个进程CPU很忙,如果从spid找到对应的IP地址。
实际上不过是一个反推的过程,一些图形化工具很容易知道termnial,machine,从这些获得IP地址还是需要一点功夫的。
一般我以前是ping -a 机器名.
现在我一般使用系统触发器
CREATE OR REPLACE TRIGGER SYS.on_logon_trigger
AFTER LOGON ON DATABASE
DECLARE
v_client_info v$session.client_info%TYPE;
v_sid v$session.SID%TYPE;
BEGIN
SELECT SYS_CONTEXT ('userenv', 'ip_address')
INTO v_client_info
FROM DUAL;
DBMS_APPLICATION_INFO.set_client_info (v_client_info);
--增加的代码
DBMS_SESSION.set_identifier (v_client_info);
--EXECUTE IMMEDIATE 'alter session set tracefile_identifier = ''' || REPLACE (NVL (v_client_info, 'local'), '.', '_') || '''';
END;
/
--这样v$session的client_info字段就有IP地址了。[注:如果为NULL是服务器]
实际上还有一个简单的方法就是使用lsof命令:
lsof -i :1521 -n -P | grep
-n 不做网络名转换。
-P 不做端口名称转换。
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/196700/viewspace-766220/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/196700/viewspace-766220/