2012-05-24 128 views
2

有人(或其他)实际上错误地更新了表中的值。我试图找出更新发生的时间。不幸的是,没有为该表创建审计触发器。Oracle数据库审计跟踪

是否有其他方法或日志可以检查和验证什么时候运行SQL语句?

我曾尝试查看v $ sql表,但我不认为该表捕获所有正在数据库上执行的SQL语句。例如。我专门做了一个UPDATE语句,但它没有在v $ sql表中捕获。

我可以看看redo.log吗?但是,我不知道如何解释这个日志。

回答

2

你唯一真正的选择是logminer,这是不适合心脏的。

的文档是在这里:http://docs.oracle.com/cd/B19306_01/server.102/b14215/logminer.htm

v$sql行可能会经过一段时间老化。当您在v$sql中查看时,您是否考虑了区分大小写?

select * from v$sql where upper(sql_fulltext) like '%UPDATE%'; 
+0

事实上,它并不适合那些胆小的人。 :(任何其他读取redo.log的工具?另外,当我查看v $ sql时,我已经考虑了大小写敏感性,我知道这些行会变老,但是我更新的记录只是最近的并立即生效。 – cooldude

+0

没有其他方式我害怕。 – Phil