0

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

问题:在 oracle 中,当通过某些外部应用程序插入数据时,如果我使用 log miner 读取 oracle 日志,它会给我重复的记录。例如,假设是否存在时间间隔 t1,t2,t3。数据从 t1 插入到 t3。同时,如果我使用日志挖掘器从 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

注意:数据一插入就被提交。

4

1 回答 1

0

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

于 2015-05-20T06:30:10.547 回答