注册

达梦数据库 LogMiner 问题:V$LOGMNR_CONTENTS 查询无结果

DM_121666 2025/02/26 266 6

为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。
【DM版本】: 达梦 8
【操作系统】:
【CPU】:
【问题描述】*:

我在使用达梦数据库的 LogMiner 功能时遇到了问题。即使正确配置 LogMiner 并执行事务后,执行 SELECT COUNT(*) FROM V$LOGMNR_CONTENTS 始终返回 0,无法获取任何 DML 操作记录。

环境信息

  • 数据库:达梦数据库 8
  • 正在尝试实现基于 LogMiner 的 CDC(变更数据捕获)功能

我尝试的步骤

我按照以下顺序执行操作:

-- 清除任何现有的 LogMiner 会话 BEGIN DBMS_LOGMNR.END_LOGMNR(); EXCEPTION WHEN OTHERS THEN NULL; END; -- 执行插入操作 INSERT INTO TEST.T000011(name) VALUES ('测试名称'); COMMIT; -- 强制切换日志,使事务进入归档日志 ALTER SYSTEM SWITCH LOGFILE; -- 稍等几秒钟让系统完成归档 -- 使用匿名块自动获取最新日志文件并设置 LogMiner DECLARE v_latest_log VARCHAR2(1000); BEGIN -- 获取最新的归档日志文件名 SELECT NAME INTO v_latest_log FROM V$ARCHIVED_LOG ORDER BY SEQUENCE# DESC FETCH FIRST 1 ROW ONLY; -- 输出找到的日志文件路径 DBMS_OUTPUT.PUT_LINE('添加日志文件:' || v_latest_log); -- 添加找到的日志文件到 LogMiner DBMS_LOGMNR.ADD_LOGFILE(LOGFILENAME => v_latest_log); -- 启动 LogMiner DBMS_LOGMNR.START_LOGMNR(OPTIONS => DBMS_LOGMNR.DICT_FROM_ONLINE_CATALOG); END; -- 查询内容 SELECT COUNT(*) FROM V$LOGMNR_CONTENTS;

执行上述步骤后,V$LOGMNR_CONTENTS 表中没有任何记录(COUNT(*) = 0)。

我已排除的可能性

  1. LogMiner 会话启动正常,没有报错
  2. 日志文件添加成功
  3. 事务确实已提交
  4. 已尝试强制日志切换
  5. 已尝试不同的 LogMiner 选项组合(如 CONTINUOUS_MINE、COMMITTED_DATA_ONLY 等)

我需要的帮助

  1. 达梦数据库的 LogMiner 是否与 Oracle 的 LogMiner 有重大差异?
  2. 是否需要特殊的数据库配置才能使 LogMiner 正常工作?
  3. 是否有其他方法可以验证 LogMiner 是否正常运行?
  4. 有没有针对达梦数据库的 LogMiner 使用示例?

我使用的是 SYSDBA 账户,也排除了

非常感谢您的帮助!

回答 0
暂无回答
扫一扫
联系客服