我对Oracle数据库中常见的日志记录方法感兴趣。 我们的方法如下:如何登录Oracle数据库?
我们为要记录的表创建一个日志表。日志表包含原始表的所有列以及一些特殊字段,包括时间戳,修改类型(插入,更新,删除),修饰符的ID。原始表上的触发器为每次插入和删除创建一个日志行,并为修改创建两行。日志行包含原始更改之前和之后的数据。
虽然记录状态,可以及时使用这种方法开采回来,它也有一些缺点:
原始表中的一个新列的- 介绍并不自动包括日志修改。
- 日志修改影响日志表和触发器,很容易搞砸。
- 无法以直接的方式确定特定过去时间记录的状态。
- ...
还有其他可能性吗? 什么样的工具可以用来解决这个问题?
我只知道log4plsql。这个工具的优点/缺点是什么?
编辑:基于布赖恩的答案,我发现以下reference,解释标准和罚款审计。
我喜欢这个设计,因为......我可以告诉你昨天发生的一切事情。我可以告诉你user_X所做的一切,从一个表。使用影子表格,您必须访问不断增长的表格来回答这些问题。 – 2008-10-14 21:01:25
LogMiner对我来说看起来很有前途,但它需要创建挖掘数据库,字典和重做日志,因此需要对系统进行重新配置。 与我们上面的方法不同的是,它显示的是sql语句而不是列值。 – rics 2008-10-28 13:29:13