由于11月10日,是4天以前的事情了,我们需要确定这个归档日志是否还在磁盘上,否则,需要从备份中还原。
select thread#,sequence#,name,to_char(first_time,'yyyy-mm-dd hh24:mi:ss')
from v$archived_log
where first_time between to_date('2025-11-10 10:00:00','yyyy-mm-dd hh24:mi:ss')
and to_date('2025-11-10 10:30:00','yyyy-mm-dd hh24:mi:ss')
and CREATor='ARCH'
order by 1,2;
4.3.2 脚本式添加日志文件
这里日志比较少,手工一个个添加即可,但如果归档日志比较多呢(一般要分析的比较少),可以直接生成脚本方式来处理。
如下:
select 'execute sys.dbms_logmnr.add_logfile(logfilename=>''' || name || '''' || decode(rownum,1,',options=>sys.dbms_logmnr.new','') || ');' as sqlstat
from v$archived_log
where first_time between to_date('2025-11-10 10:00:00','yyyy-mm-dd hh24:mi:ss')
and to_date('2025-11-10 10:30:00','yyyy-mm-dd hh24:mi:ss')
and CREATor='ARCH'
order by first_time, thread# desc ,sequence#;
比如我们这里,想找 谁修改了 PTS.PAI_ADMISSION_NOTICE.
那么就可以使用下面的语句:
select SQL_REDO,operation,username,client_info,timestamp
from sys.logmnr_contents_251110
where seg_owner='PTS'
AND SEG_NAME='PAI_ADMISSION_NOTICE'
and operation='UPDATE'
order by timestamp ;