查找oracle的操作日志

今天程序有些功能不能用了,查了一下,发现某些表对象删除了

真是考验人的耐心,一定要查出是谁干的,重建这样对象很麻烦,以往debug程序的时候,就干过

年纪大了,记不住啊!再次baidu,google,整理如下:

select * from V$logfile --查在线的redo

archive log list --查归档日志

还好有个时间概念,就是昨天下班后到今天早上上班出现的问题

可以根据时间查看在线,归档日志

1; SQL> connect /as sysdba
   SQL> execute dbms_logmnr_d.build(dictionary_filename => 'dict.ora',dictionary_location => '路径')

2: SQL>execute dbms_logmnr.add_logfile(LogFileName => '/redo01.log',Options => dbms_logmnr.new);    --(第一个文件需要使用参数options => dbms_logmnr.new)

3:SQL>execute dbms_ logmnr.add_ logfile(LogFileName => '/redo01.log',Options => dbms_logmnr.ADDFILE);

4:SQL> EXECUTE dbms_logmnr.start_logmnr(
DictFileName => ' dict.ora ',
StartTime => to_date('2007-9-18 00:00:00','YYYY-MM-DD HH24:MI:SS')
EndTime => to_date(''2007-9-18 23:59:59','YYYY-MM-DD HH24:MI:SS '));

5: SELECT
        sql_redo
   FROM v$logmnr_contents a
  WHERE upper(sql_redo) like '%DROP%'

Select SCN,
       timestamp,
       session# session_num,     
       sql_redo
  From V$LOGMNR_CONTENTS
 Order by 1

就可以查到想查的内容

同时有个微博总结得不错,留一下:

http://hi.baidu.com/ljm0211/item/5666ef11849a96e55e53b127

猜你喜欢

转载自aigo-h.iteye.com/blog/1990938