有时候,我们做troubleshooting的时候,往往通过会话一级的跟踪找不到会话执行的SQL了或者不能确定是哪个会话引起来的问题,这个时候我们可以在系统一级创建一个用户登录/登出的触发器来跟踪用户执行的SQL语句:
CREATE OR REPLACE TRIGGER trig_marsngadmin_logon
after logon on database
begin
if login_user = 'MARSNGADMIN'
then
execute immediate 'alter session set events ''10046 trace name context forever,level 12''';
end if;
end trig_marsngadmin_logon;
/
CREATE OR REPLACE TRIGGER trig_marsngadmin_logoff
before logoff on database
-- For Oracle 11g
begin
if login_user = 'MARSNGADMIN'
then
execute immediate 'alter session set events ''10046 trace name context off''';
end if;
end trig_marsngadmin_logon;
/
通过这种方式,我们就可以跟踪到用户的活动情况了!
阅读(2438) | 评论(0) | 转发(0) |