问题标签 [logminer]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
158 浏览

oracle - 使用 oracle cdc 时出现可写操作错误

通过 oracle cdc 客户端连接时出现以下错误,并且我的原始数据库是只读数据库,但错误是可写操作所需的数据库。请帮忙

0 投票
0 回答
70 浏览

java - Log Miner 无法捕获数据

我正在使用预装了 Oracle 12c 和可插拔数据库 orcl 的虚拟机。我需要在该 oracle 上启用日志挖掘器以捕获更改的数据。我编写了一个 Java 实用程序,它读取 oracle 的重做日志并创建一个日志挖掘器会话并捕获数据。以前是抓数据的,现在抓不到数据了。这是我用来启用日志挖掘器的一组命令。

此外,它在 Java 实用程序中没有给出错误。任何人都可以帮助解决这个问题吗?

0 投票
3 回答
887 浏览

oracle - 在 Oracle 12c R2 中,LogMiner 是否支持超过 30 个字符的表/列名称?

到目前为止,任何列名超过 30 个字符的表在查询 V$LOGMNR_CONTENTS 时都会给出 UNSUPPORTED 操作

如果我删除该列或将大小调整为 <=30,则所有 CRUD 操作都将正常报告。

在 Oracle 12.2 中支持 128 个字符对象,所以我试图了解我是否配置了错误。无休止的谷歌搜索让我无处可去,Oracle 文档也没有。

提前致谢!

编辑

刚刚检查了 19c,同样的行为。兼容性设置为 19.0.0

编辑

关于补充日志记录的使用有很多评论,但无法创建与接受的答案相同的场景。

无论哪种方式,鉴于 Oracle 现在已经表示永远不会支持它,这并不重要!

测试我在仍然无法工作的地方运行

0 投票
2 回答
301 浏览

oracle - V$LOGMNR_CONTENTS 中 COMMIT_TIMESTAMP 的时区

V$LOGMNR_CONTENTS字典视图中TIMESTAMPCOMMIT_TIMESTAMP列是DATE数据类型 - 没有任何时区信息。那么它们位于哪个时区 - 数据库时区、主机时区还是 UTC?是否有数据库参数来配置他们的时区?

0 投票
1 回答
55 浏览

oracle - 存储过程每次运行都会在同一个会话中启动 logminer

我创建了一个 oracle 存储过程来根据事务 rowid 和时间戳从 logminer 获取数据。该过程应尝试从 logminer 中进行选择,如果在此会话上启动 logminer 时失败,则应启动它并选择数据。问题是每次程序在同一个会话上启动 logminer

如何控制它以使 logminer 不会每次都启动?

0 投票
1 回答
206 浏览

oracle - Oracle 11.2.0.3 重做日志的问题

我在 oracle 11.2.0.3 中有一个表,我想在重做日志中捕获它。问题是它有一个 sdo_geometry 字段。这是我无法更改的旧表。但好消息是我不需要那个 sdo_geometry 字段。所以我创建了一个物化视图,如下所示。

当我进行更新并查看重做日志时,问题就会出现。我没有看到更新语句,而是看到了删除和插入语句。由于我使用的是主键,我希望看到更新语句。

有谁知道我需要做什么来确保我在重做日志中看到更新语句。

谢谢

0 投票
2 回答
112 浏览

oracle - Oracle 的 V$LOGMNR_CONTENTS 用于具有 UDT 的表 - 连接 UPDATE 和 INTERNAL 操作

我正在使用 UDT(用户定义类型)更新 oracle 表,然后查询V$LOGMNR_CONTENTS视图。我看到更新的每一行都有 2 条记录 - UPDATE 和 INTERNAL。我需要弄清楚如何在它们之间进行链接,因为 UPDATE 操作中有一个临时值,ROW_ID并且正确的值只出现在 INTERNAL 操作中,而且我不确定它们的 SCN 编号如何相关。我正在考虑的方式是为每个 UPDATEs 创建一个队列DATA_OBJ#,并将它们链接到 INTERNALs FIFO。我还缺少什么更好的东西吗?

脚本:

查询(在最后一个日志的 START_LOGMNR 之后):

结果:

0 投票
0 回答
439 浏览

oracle - ORA-01292: 使用在线目录时无法使用日志挖掘器访问日志文件

我目前正在尝试将 logminer 添加到我的 Oracle 数据库中。目标是使用 le 在线目录,但是当我使用时:

执行 DBMS_LOGMNR.START_LOGMNR(选项 => DBMS_LOGMNR.DICT_FROM_ONLINE_CATALOG);

启动日志矿工我得到这个错误:

ORA-01292: aucun fichier journal n'est indique pour la session LogMiner actuelle

ORA-01292: 当前 LogMiner 会话没有日志文件。

你对此有任何线索吗?

即使我使用在线目录,我是否需要添加日志文件?

谢谢,

0 投票
1 回答
89 浏览

sql - 如何将 DBA_HIST_* 表与 V$LOGMNR_CONTENTS 表连接 - Oracle DB

我必须在重做日志和 dba_hist_* 表中收集一些信息(例如 DBA_HIST_SQLTEXT、DBA_HIST_SQL_PLAN、DBA_SQLSET_PLANS)。因为我需要的一些信息不存在于重做日志中,但存在于 dba 表中。

我尝试通过事务 ID(二进制字段)加入,但结果似乎错误。我也无法在重做日志中找到 sql id。怎么解决,谢谢

0 投票
1 回答
128 浏览

oracle - Oracle LogMiner 结果不一致

我正在开发基于 LogMiner 的解决方案来捕获更改,并且在尝试挖掘与 CLOB 或 BLOB 操作相关的重做事件时,我发现了一组不寻常的期望。

在我的用例中,我已将记录插入到包含 3 个 CLOB 字段的表中,其中一个 CLOB 字段值很小,而其他两个 CLOB 字段必须使用 LOB_WRITE 操作进行设置。

当我设置在事务提交之前和之后开始的起始 LogMiner SCN 范围时,我得到了完整的预期行V$LOGMNR_CONTENTS,它们是:

当以特定的开始/结束 SCN 范围开始挖掘会话时,会出现异常位。

比如我从 37717239 挖到 37717289 时,我期望 LogMiner 同时提供表中的 theSTART和 the INSERT;但是只有START操作存在。

此外,当我从 37717290 挖掘到 37717340 时,我希望 LogMiner 提供所有的SEL_LOB_LOCATOR,LOB_WRITE和后续INSERT以及COMMIT; 然而,只有随后的INSERTCOMMIT在场。

我可以从中做出的唯一断言是,当您拆分事务时,LogMiner 似乎遇到了麻烦,其中某些重做事件表示各种合成操作,因为它们与 LOB 操作相关,因此我能够真正始终重建系列的唯一方法事件已从 37717288 向前挖掘,以强制 LogMiner 在实现内容视图中的行时拥有可用事务的全部范围。

为什么 LogMiner 会这样?为什么在使用我上面介绍的 SCN 范围拆分交易时它没有正确实现?