Oracle Logminer не может найти повторные записи - PullRequest
1 голос
/ 10 июля 2011

Я обновил несколько строк в таблице "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 ]

2 голосов
/ 11 июля 2011

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

2 голосов
/ 10 июля 2011

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

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...