|
客户有这个一个需求:生产数据库中某张表被人删除,已经从备用数据库把数据库恢复出来。但是客户希望知道是谁做的该删除操作,但是由于数据库没有开启审计功能。
此时,只能寄希望于oracle日志挖掘了。
找到相应数据库中对应时间段的归档日志,准备进行分析。
--添加归档日志到logmnr
execute dbms_logmnr.add_logfile('+CORE_REDO01/coredb/onlinelog/group_3.261.812494827',dbms_logmnr.new);
PL/SQL procedure successfully completed.
--添加需要分析的归档日志
SQL> execute dbms_logmnr.add_logfile('+CORE_REDO01/coredb/onlinelog/group_9.265.829161227',dbms_logmnr.addfile);
PL/SQL procedure successfully completed.
SQL> execute dbms_logmnr.add_logfile('+CORE_REDO01/coredb/onlinelog/group_6.260.812494821',dbms_logmnr.addfile);
PL/SQL procedure successfully completed.
--开始进行logmnr日志挖掘
SQL> execute dbms_logmnr.start_logmnr(options=>dbms_logmnr.dict_from_online_catalog+dbms_logmnr.committed_data_only);
PL/SQL procedure successfully completed.
--分析完后相应的数据存储在v$logmnr_contents视图中SQL> select sql_redo,sql_undo from v$logmnr_contents where table_name ='WEB_PRD_PROD' and operation='DROP';
--分析完成后接受logmnr释放资源
SQL> exec dbms_logmnr.end_logmnr();
PL/SQL procedure successfully completed.
|
|