问题标签 [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.
oracle - 使用 oracle cdc 时出现可写操作错误
通过 oracle cdc 客户端连接时出现以下错误,并且我的原始数据库是只读数据库,但错误是可写操作所需的数据库。请帮忙
java - Log Miner 无法捕获数据
我正在使用预装了 Oracle 12c 和可插拔数据库 orcl 的虚拟机。我需要在该 oracle 上启用日志挖掘器以捕获更改的数据。我编写了一个 Java 实用程序,它读取 oracle 的重做日志并创建一个日志挖掘器会话并捕获数据。以前是抓数据的,现在抓不到数据了。这是我用来启用日志挖掘器的一组命令。
此外,它在 Java 实用程序中没有给出错误。任何人都可以帮助解决这个问题吗?
oracle - 在 Oracle 12c R2 中,LogMiner 是否支持超过 30 个字符的表/列名称?
到目前为止,任何列名超过 30 个字符的表在查询 V$LOGMNR_CONTENTS 时都会给出 UNSUPPORTED 操作
如果我删除该列或将大小调整为 <=30,则所有 CRUD 操作都将正常报告。
在 Oracle 12.2 中支持 128 个字符对象,所以我试图了解我是否配置了错误。无休止的谷歌搜索让我无处可去,Oracle 文档也没有。
提前致谢!
编辑
刚刚检查了 19c,同样的行为。兼容性设置为 19.0.0
编辑
关于补充日志记录的使用有很多评论,但无法创建与接受的答案相同的场景。
无论哪种方式,鉴于 Oracle 现在已经表示永远不会支持它,这并不重要!
测试我在仍然无法工作的地方运行
oracle - V$LOGMNR_CONTENTS 中 COMMIT_TIMESTAMP 的时区
在V$LOGMNR_CONTENTS
字典视图中TIMESTAMP
和COMMIT_TIMESTAMP
列是DATE
数据类型 - 没有任何时区信息。那么它们位于哪个时区 - 数据库时区、主机时区还是 UTC?是否有数据库参数来配置他们的时区?
oracle - 存储过程每次运行都会在同一个会话中启动 logminer
我创建了一个 oracle 存储过程来根据事务 rowid 和时间戳从 logminer 获取数据。该过程应尝试从 logminer 中进行选择,如果在此会话上启动 logminer 时失败,则应启动它并选择数据。问题是每次程序在同一个会话上启动 logminer
如何控制它以使 logminer 不会每次都启动?
oracle - Oracle 11.2.0.3 重做日志的问题
我在 oracle 11.2.0.3 中有一个表,我想在重做日志中捕获它。问题是它有一个 sdo_geometry 字段。这是我无法更改的旧表。但好消息是我不需要那个 sdo_geometry 字段。所以我创建了一个物化视图,如下所示。
当我进行更新并查看重做日志时,问题就会出现。我没有看到更新语句,而是看到了删除和插入语句。由于我使用的是主键,我希望看到更新语句。
有谁知道我需要做什么来确保我在重做日志中看到更新语句。
谢谢
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 之后):
结果:
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 会话没有日志文件。
你对此有任何线索吗?
即使我使用在线目录,我是否需要添加日志文件?
谢谢,
sql - 如何将 DBA_HIST_* 表与 V$LOGMNR_CONTENTS 表连接 - Oracle DB
我必须在重做日志和 dba_hist_* 表中收集一些信息(例如 DBA_HIST_SQLTEXT、DBA_HIST_SQL_PLAN、DBA_SQLSET_PLANS)。因为我需要的一些信息不存在于重做日志中,但存在于 dba 表中。
我尝试通过事务 ID(二进制字段)加入,但结果似乎错误。我也无法在重做日志中找到 sql id。怎么解决,谢谢
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
; 然而,只有随后的INSERT
和COMMIT
在场。
我可以从中做出的唯一断言是,当您拆分事务时,LogMiner 似乎遇到了麻烦,其中某些重做事件表示各种合成操作,因为它们与 LOB 操作相关,因此我能够真正始终重建系列的唯一方法事件已从 37717288 向前挖掘,以强制 LogMiner 在实现内容视图中的行时拥有可用事务的全部范围。
为什么 LogMiner 会这样?为什么在使用我上面介绍的 SCN 范围拆分交易时它没有正确实现?