Database Logoff Trigger as a Data Collector(使用 LogOff触发器收集OWI信息)

1、创建记录表

create table system.session_event_history
initrans 4
as select b.sid, b.serial#, b.username, b.osuser, b.paddr,
b.process, b.logon_time, b.type, a.event, a.total_waits,
a.total_timeouts, a.time_waited, a.average_wait,
a.max_wait, sysdate as logoff_timestamp
from v$session_event a, v$session b
where 1 = 2;

create table system.sesstat_history initrans 4
as
select c.username, c.osuser, a.sid,
c.serial#, c.paddr, c.process,
c.logon_time, a.statistic#, b.name,
a.value, sysdate as logoff_timestamp
from v$sesstat a, v$statname b, v$session c
where 1 = 2;


2、创建trigger

create or replace trigger sys.logoff_trig
before logoff on database
declare
logoff_sid pls_integer;
logoff_time date := sysdate;
begin
select sid into logoff_sid from v$mystat where rownum < 2;
insert into system.session_event_history
(sid,
serial#,
username,
osuser,
paddr,
process,
logon_time,
type,
event,
total_waits,
total_timeouts,
time_waited,
average_wait,
max_wait,
logoff_timestamp)
select a.sid,
b.serial#,
b.username,
b.osuser,
b.paddr,
b.process,
b.logon_time,
b.type,
a.event,
a.total_waits,
a.total_timeouts,
a.time_waited,
a.average_wait,
a.max_wait,
logoff_time
from sys.v$session_event a, sys.v$session b
where a.sid = b.sid
and b.username = login_user
and b.sid = logoff_sid;

insert into system.sesstat_history
(username,
osuser,
sid,
serial#,
paddr,
process,
logon_time,
statistic#,
name,
value,
logoff_timestamp)
select c.username,
c.osuser,
a.sid,
c.serial#,
c.paddr,
c.process,
c.logon_time,
a.statistic#,
b.name,
a.value,
logoff_time
from v$sesstat a, v$statname b, v$session c
where a.statistic# = b.statistic#
and a.sid = c.sid
and b.name in
('CPU used when call started', 'CPU used by this session',
'recursive cpu usage', 'parse time cpu')
and c.sid = logoff_sid
and c.username = login_user;
end;


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

转载于:http://blog.itpub.net/6456/viewspace-112250/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值