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
注意:数据一插入就会被提交。
答案 0 :(得分:0)
根据oracle文档,在logminr中,开始时间将被用作大于或等于,结束时间将被用作小于或等于。因此logmnr就是这样设计的。