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;

相关推荐
JSON_L16 小时前
Fastadmin中实现敏感词管理
数据库·php·fastadmin
不是起点的终点17 小时前
【实战】Python 一键生成数据库说明文档(对接阿里云百炼 AI,输出 Word 格式)
数据库·python·阿里云
2301_8135995519 小时前
Go语言怎么做秒杀系统_Go语言秒杀系统实战教程【实用】
jvm·数据库·python
NCIN EXPE1 天前
redis 使用
数据库·redis·缓存
MongoDB 数据平台1 天前
为编码代理引入 MongoDB 代理技能和插件
数据库·mongodb
极客on之路1 天前
mysql explain type 各个字段解释
数据库·mysql
代码雕刻家1 天前
MySQL与SQL Server的基本指令
数据库·mysql·sqlserver
lThE ANDE1 天前
开启mysql的binlog日志
数据库·mysql
yejqvow121 天前
CSS如何控制placeholder文字的颜色_使用--placeholder伪元素
jvm·数据库·python
oLLI PILO1 天前
nacos2.3.0 接入pgsql或其他数据库
数据库