【问题标题】:Reading oracle logs giving duplicate records读取给出重复记录的 oracle 日志
【发布时间】:2015-05-18 06:05:56
【问题描述】:

enter code here我在通过时间间隔读取 Oracle 日志时遇到问题。

问题: 在 oracle 中,当通过某些外部应用程序插入数据时,如果我使用日志挖掘器读取 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

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

【问题讨论】:

  • 您是否观察到日期范围的边界与“重复”记录的时间戳之间的关系?
  • 是的!在 t2 实例插入的记录在这两种情况下都会出现。
  • 根据oracle文档,在logminr中,开始时间大于等于,结束时间小于等于。所以logminer就是这样设计的。

标签: oracle redo-logs


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-05-28
    • 1970-01-01
    • 2020-11-03
    • 2011-11-02
    • 2023-03-11
    • 2012-05-30
    • 2013-11-11
    相关资源
    最近更新 更多