跟踪oracle中数据更改的最佳方法

GBK*_*GBK 7 oracle triggers materialized-views cdc oracle9i

作为我正在谈论的标题,跟踪oracle数据变化的最佳方法是什么?我只是想知道哪一行被更新/删除/插入?

起初我想到了触发器,但是我需要在每个表上写下更多的触发器,然后记录下影响到我的更改表的rowid,这不好,然后我在Google中搜索,学习有关物化视图日志和更改的新概念数据抓取,

物化视图日志对我有好处,我可以将它与原始表进行比较然后我可以得到不同的记录,甚至不同的字段,我认为方式是相同的我从原始创建/复制新表(但我不不知道有什么不同吗?);

改变数据捕获组件对我来说很复杂:),所以我不想浪费我的时间来研究它.

任何人都有经验是跟踪oracle数据变化的最佳方法吗?

Rob*_*ijk 5

您需要查看AUDIT语句.它收集SYS.AUD $表中的所有审计记录.

例:

AUDIT insert, update, delete ON t BY ACCESS
Run Code Online (Sandbox Code Playgroud)

问候,
Rob.


小智 2

您可能想看看金门。这使得捕获更改变得非常简单,但价格昂贵,但具有良好的性能和快速的设置。

如果性能不成问题,触发器和审核可能是有效的解决方案。如果性能是一个问题并且 Golden Gate 被认为太昂贵,您还可以使用 Logminer 或 Change Data Capture。如果有这个选择,我会选择 CDC。正如您所看到的,有很多选项,近实时和离线的。

手动编写解决方案也是有代价的,Golden Gate 值得研究。