读取oracle日志给出重复记录

时间:2015-05-18 06:05:57

标签: oracle redo-logs

enter code here在通过时间间隔阅读oracle日志时,我遇到了一个问题。

问题: 在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 个答案:

答案 0 :(得分:0)

根据oracle文档,在logminr中,开始时间将被用作大于或等于,结束时间将被用作小于或等于。因此logmnr就是这样设计的。