日期:2014-05-16  浏览次数:20470 次

查找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