Чтение журналов оракула, дающих дубликаты записей

enter code hereЯ сталкиваюсь с проблемой при чтении журналов оракула через промежуток времени.

Проблема: в oracle, когда данные вставляются через какое-то внешнее приложение, если я использую log miner для чтения журналов oracle, он выдает мне дубликаты записей. Например, предположим, что существует интервал времени t1,t2,t3. Данные вставляются от t1 до t3. Между тем, если я использую log miner для чтения данных от t1 до t2, а затем от t2 до t3. Затем есть несколько записей, которые поступают в обоих интервалах.

Одно наблюдение: записи, которые показывают дубликаты, находятся в конце первого интервала и в начале для второго интервала.

Запросы, которые я использую:

begin dbms_logmnr.start_logmnr(STARTTIME => t1,ENDTIME =>t2,OPTIONS => DBMS_LOGMNR.DICT_FROM_ONLINE_CATALOG + DBMS_LOGMNR.CONTINUOUS_MINE  +  DBMS_LOGMNR.COMMITTED_DATA_ONLY);end; 

select sql_redo from V$LOGMNR_CONTENTS WHERE OPERATION IN('INSERT','UPDATE','DELETE') and table_name = xyz 

begin dbms_logmnr.start_logmnr(STARTTIME => t2,ENDTIME =>t3,OPTIONS => DBMS_LOGMNR.DICT_FROM_ONLINE_CATALOG + DBMS_LOGMNR.CONTINUOUS_MINE  +  DBMS_LOGMNR.COMMITTED_DATA_ONLY);end; 

select sql_redo from V$LOGMNR_CONTENTS WHERE OPERATION IN('INSERT','UPDATE','DELETE') and table_name = xyz 

Формат даты, который я использую для запуска майнера: DD-MON-YYYY HH24:MI:SS

Примечание: данные фиксируются, как только они вставляются.

1 ответ

Решение

Согласно документации Oracle, в logminr время начала будет больше или равно, а время окончания будет меньше или равно. Таким образом, logmnr разработан таким образом.

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