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;

相关推荐
2301_781571428 小时前
Golang格式化输出占位符都有什么_Golang fmt占位符教程【通俗】
jvm·数据库·python
养肥胖虎8 小时前
RAG学习笔记(3):区分数据库检索与RAG的使用场景
数据库·ai·rag
_ku_ku_8 小时前
数据库系统原理 · 数据库应用开发 · 自学总结
数据库
No8g攻城狮9 小时前
【人大金仓】wsl2+ubuntu22.04安装人大金仓数据库V9
java·数据库·spring boot·非关系型数据库
山峰哥9 小时前
SQL慢查询调优实战:从全表扫描到索引覆盖的完整复盘
前端·数据库·sql·性能优化
代码中介商10 小时前
Redis入门:5大数据类型全解析
数据库·redis·缓存
渣渣盟10 小时前
数据库设计范式详解(纯小白版)
数据库·oracle·软考·数据库工程师
夜雪闻竹11 小时前
Cursor 对话导入:解析 SQLite 里的宝藏
数据库·sqlite·ai编程
hhb_61812 小时前
PL/SQL核心技术难点梳理与实战应用案例解析
数据库·sql
m0_4708576412 小时前
PHP怎么实现工厂模式_Factory模式编写指南【指南】
jvm·数据库·python