LogMiner Options 选项速查表

选项作用是否必需
DICT_FROM_ONLINE_CATALOG2使用在线字典✅ 必选一个
DICT_FROM_REDO_LOGS4使用日志中的字典✅ 必选一个
COMMITTED_DATA_ONLY16384只显示已提交事务✅ 推荐
NO_ROWID_IN_STMT2048SQL中不包含ROWID✅ 推荐
NO_SQL_DELIMITER4096SQL末尾不加分号可选
STRING_LITERALS_IN_STMT512使用字面量而非绑定变量可选
CONTINUOUS_MINE128连续挖掘模式可选
SKIP_CORRUPTION8跳过损坏日志块可选

 示例一
直接使用当前数据库的在线数据字典(推荐,实时性好)(适用于挖掘当前数据库仍存在的对象的操作,必须添加数据库补充日志):
SELECT SUPPLEMENTAL_LOG_DATA_MIN FROM V$DATABASE;
ALTER DATABASE ADD SUPPLEMENTAL LOG DATA;

BEGIN
  DBMS_LOGMNR_D.BUILD(OPTIONS => DBMS_LOGMNR_D.STORE_IN_REDO_LOGS);
END;
/

BEGIN
  DBMS_LOGMNR.ADD_LOGFILE(
    LOGFILENAME => 'C:\app\oracle_arch\1_1_1222942331.DBF',
    OPTIONS => DBMS_LOGMNR.NEW
  );
  DBMS_LOGMNR.ADD_LOGFILE(
    LOGFILENAME => 'C:\app\oracle_arch\1_2_1222942331.DBF'
  );
END;
/

BEGIN
  DBMS_LOGMNR.START_LOGMNR(
    OPTIONS =>
      DBMS_LOGMNR.DICT_FROM_ONLINE_CATALOG +
      DBMS_LOGMNR.COMMITTED_DATA_ONLY +
      DBMS_LOGMNR.NO_ROWID_IN_STMT
  );
END;
/

BEGIN
  DBMS_LOGMNR.END_LOGMNR();
END;
/

示例二
(使用数据字典文件方式):
CREATE OR REPLACE DIRECTORY ZZH_DIR AS 'C:\app\oracle_dump';
GRANT READ, WRITE ON DIRECTORY ZZH_DIR TO SYS;

BEGIN
  DBMS_LOGMNR_D.BUILD(
    DICTIONARY_FILENAME => 'logminer_dict.ora',
    DICTIONARY_LOCATION => 'ZZH_DIR',
    OPTIONS => DBMS_LOGMNR_D.STORE_IN_FLAT_FILE
  );
END;
/

BEGIN
  DBMS_LOGMNR.ADD_LOGFILE(
    LOGFILENAME => 'C:\app\oracle_arch\1_1_1222942331.DBF',
    OPTIONS => DBMS_LOGMNR.NEW
  );
  DBMS_LOGMNR.ADD_LOGFILE(
    LOGFILENAME => 'C:\app\oracle_arch\1_2_1222942331.DBF'
  );
END;
/

BEGIN
  DBMS_LOGMNR.START_LOGMNR(
    DICTFILENAME => 'C:\app\oracle_dump\logminer_dict.ora',
    OPTIONS =>
      DBMS_LOGMNR.COMMITTED_DATA_ONLY + 
      DBMS_LOGMNR.NO_ROWID_IN_STMT +
      DBMS_LOGMNR.NO_SQL_DELIMITER
  );
END;
/

BEGIN
  DBMS_LOGMNR.END_LOGMNR();
END;
/

查看所有归档日志信息(包括路径、大小、生成时间等),可以通过first_time筛选目标时间范围的归档日志
SELECT name, sequence#, first_time, next_time
  FROM v$archived_log
 WHERE first_time BETWEEN
       TO_DATE('2025-10-01 00:00:00', 'YYYY-MM-DD HH24:MI:SS') AND
       TO_DATE('2026-10-27 23:59:59', 'YYYY-MM-DD HH24:MI:SS');

查询分析结果
注意:不管什么分析方式,查询分析结果的方式是一样的。
SELECT SCN,
       TIMESTAMP,
       OPERATION_CODE,
       OPERATION,
       SEG_OWNER,
       SEG_NAME,
       TABLE_NAME,
       SEG_TYPE_NAME,
       TABLE_SPACE,
       ROW_ID,
       SESSION_INFO,
       TX_NAME,
       XIDUSN,
       XIDSLT,
       XIDSQN,
       RBASQN,
       RBABLK,
       RBABYTE,
       SQL_REDO,
       SQL_UNDO,
       USERNAME,
       OS_USERNAME,
       MACHINE_NAME
  FROM V$LOGMNR_CONTENTS
 WHERE OPERATION IN ('INSERT', 'UPDATE', 'DELETE', 'DDL')
 ORDER BY SCN ASC, COMMIT_SCN ASC;

Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐