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