有的时候,数据库不定期的出现一些现象,比如出现 ORA- 错误,但是不太容易再现。我们可以做一个 logon trigger,每次特定的用户登录时,就作一些记录,也可以收集 10046 trace。
例如:
connect /as sysdba
CREATE OR REPLACE TRIGGER <YYYYYY>
AFTER LOGON ON DATABASE
DECLARE
v_user varchar2(64);
BEGIN
SELECT SYS_CONTEXT('USERENV', 'SESSION_USER')
INTO v_user FROM dual;
if v_user = 'XXXXXX' then
execute immediate '10046 trace name context forever, level 12';;
end if;
END;
/