Oracle LogMiner 解析归档

LogMiner Options 选项速查表

选项 作用 是否必需
DICT_FROM_ONLINE_CATALOG 2 使用在线字典 ✅ 必选一个
DICT_FROM_REDO_LOGS 4 使用日志中的字典 ✅ 必选一个
COMMITTED_DATA_ONLY 16384 只显示已提交事务 ✅ 推荐
NO_ROWID_IN_STMT 2048 SQL中不包含ROWID ✅ 推荐
NO_SQL_DELIMITER 4096 SQL末尾不加分号 可选
STRING_LITERALS_IN_STMT 512 使用字面量而非绑定变量 可选
CONTINUOUS_MINE 128 连续挖掘模式 可选
SKIP_CORRUPTION 8 跳过损坏日志块 可选

示例一

直接使用当前数据库的在线数据字典(推荐,实时性好)(适用于挖掘当前数据库仍存在的对象的操作,必须添加数据库补充日志):

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;

相关推荐
麦聪聊数据1 小时前
数据服务化时代:企业数据能力输出的核心路径
数据库
shushangyun_1 小时前
2026年快消品B2B系统推荐:支持终端门店订货、促销政策自动化的工具?
java·运维·网络·数据库·人工智能·spring·自动化
DARLING Zero two♡1 小时前
【MySQL数据库】数据类型与表约束
数据库·mysql
曹牧2 小时前
Oracle EXPLAIN PLAN
数据库·oracle
BD_Marathon2 小时前
SQL学习指南——视图
数据库·sql
活宝小娜2 小时前
mysql详细安装教程
数据库·mysql·adb
贤时间2 小时前
codex 助力oracle ebs 开发
数据库·oracle
秉承初心2 小时前
PostgreSQL 数据性能瓶颈突破实战
数据库·postgresql·oracle
2601_962072553 小时前
李梦娇常识4600问|题库|打印版
sql·华为od·华为·c#·华为云·.net·harmonyos