Oracle Logminer не может найти повторные записи

Я обновил несколько строк в таблице "HR"."AAA". Теперь я хочу вернуть таблицу HR.AAA в предыдущее состояние, используя LogMiner.

Я делаю следующее:

begin 
dbms_logmnr_d.build('dictionary.ora','C:\oracle\product\10.2.0\oradata\ORCL\UTL'); 
end;

Я проверил и до и после обновления таблицы, текущий файл журнала был:"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... Можете ли вы сказать мне, почему?

2 ответа

Решение

Я нашел решение:):):)

Я просмотрел содержимое представления v$logmnr_contents и нашел в столбце INFO значение "In Memory Undo is unsupported". Эта строка соответствовала строке, в которой должно быть размещено мое обновление (я рассматривал столбец метки времени, я имею в виду метку времени, соответствующую времени, когда я обновлял таблицу). После поиска в Google я нашел следующее утверждение:

SQL> ALTER DATABASE ADD SUPPLEMENTAL LOG DATA;
SQL> ALTER SYSTEM SWITCH LOGFILE;    

Теперь я вижу мой REDO (счастливый)

Это происходит из-за In Memory Undo, новой функции, появившейся в Oracle 10g. Вы можете проверить статью для получения дополнительной информации. http://www.freelists.org/post/oracle-l/First-17-updated-records-disappeared-from-REDOLOG-files,2

Другие вопросы по тегам