Поиск по этому блогу

среда, марта 25, 2009

Свой опыт работы с LOGMINER

Кто-то с шаловливыми ручками скажем удалил данные или таблицу. Причем совсем недавно. Наша задача во-первых найти то что было удалено и вернуть на родину, а во вторых указать на этого нехорошего дядю с большими ушами.
Чтобы указать на дядю нам следует отработать скрипт. До того как дядя удалит чего-нибудь.

-ALTER DATABASE ADD SUPPLEMENTAL LOG DATA;

После того как дядя поработал ручками, мы должны скоренько подгрузить логи в таблицу. Потом можем свободно смотреть что и как делалось.

-SELECT distinct member LOGFILENAME FROM V$LOGFILE;
-BEGIN
DBMS_LOGMNR.ADD_LOGFILE('/u6/test/log1/redo01.log');
DBMS_LOGMNR.ADD_LOGFILE('/u6/test/log1/redo02.log');
DBMS_LOGMNR.ADD_LOGFILE('/u6/test/log1/redo03.log');
END;
-BEGIN
DBMS_LOGMNR.START_LOGMNR(options =>dbms_logmnr.dict_from_online_catalog);
END;
-select /*to_char(timestamp,'mm/dd/yy hh24:mi:ss') timestamp,*/ *
from v$logmnr_contents
where table_name = 'ACCOUNT'
and operation = 'UPDATE'
and '02/25/2009 15:14' =to_char(timestamp,'mm/dd/yyyy hh24:mi');