我更新了“HR”中的几行。“AAA”表。现在我想使用LogMiner将HR.AAA表返回到以前的状态。
我执行以下操作:
begin
dbms_logmnr_d.build('dictionary.ora','C:\oracle\product\10.2.0\oradata\ORCL\UTL');
end;
我检查过,在更新表之前和之后,CURRENT日志文件是:“C:\ ORACLE \ PRODUCT \ 10.2.0 \ ORADATA \ ORCL \ REDO01.LOG”
begin
dbms_logmnr.add_logfile('C:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\REDO01.LOG',options=> dbms_logmnr.new);
end;
begin
dbms_logmnr.start_logmnr (DictFileName =>'C:\oracle\product\10.2.0\oradata\ORCL\UTL\dictionary.ora', options => dbms_logmnr.print_pretty_sql);
end;
select * from v$logmnr_contents
where username='HR'
输出无关紧要。我无法找到HR模式所做的更改......你能告诉我为什么吗?
答案 0 :(得分:2)
我找到了解决方案:):)):)
我浏览了视图v $ logmnr_contents的内容,并在INFO列“In Memory Undo is notpported”值中找到。这行对应于应该放置更新的行(我认为是时间戳列,我的意思是时间戳对应于我更新表的时间)。谷歌搜索后,我发现以下声明:
SQL> ALTER DATABASE ADD SUPPLEMENTAL LOG DATA;
SQL> ALTER SYSTEM SWITCH LOGFILE;
现在我可以看到我的REDO(快乐)
答案 1 :(得分:2)
此行为是由内存撤消引起的,这是Oracle 10g引入的新功能。 您可以查看文章了解更多信息。 http://www.freelists.org/post/oracle-l/First-17-updated-records-disappeared-from-REDOLOG-files,2