问题描述
某人(或某物)实际上错误地更新了我表中的值.我试图找出更新发生的时间.不幸的是,没有为上述表创建审计触发器.
Someone (or something) actually updated a value in my table wrongly. I am trying to find out when the update happened. Unfortunately, there is no audit trigger being created for the said table.
是否有其他方法或日志可以检查和验证在什么时间运行了哪些 SQL 语句?
Is there other ways or logs that I can check and verify what SQL statements were run at what time?
我曾尝试查看 v$sql 表,但我认为该表并未捕获在数据库上执行的所有 SQL 语句.例如.我特地做了一个UPDATE语句,但是没有在v$sql表中捕获.
I had tried to look at v$sql table, but I don't think that table is capturing all the SQL statements being performed on the database. E.g. I specifically did an UPDATE statement, but it is not captured in the v$sql table.
我可以看看 redo.log 吗?但是,我不知道如何解释此日志.
Can I look at the redo.log? However, I do not know how to interpret this log.
推荐答案
你唯一真正的选择是 logminer,它不适合胆小的人.
Your only real option is logminer, which isn't for the faint of heart.
文档在这里:http://docs.oracle.com/cd/B19306_01/server.102/b14215/logminer.htm
v$sql
行可能会在一段时间后老化.您在查看 v$sql
时是否考虑了区分大小写?
v$sql
rows may get aged out after a while. Did you account for case sensitivity when looking in v$sql
?
select * from v$sql where upper(sql_fulltext) like '%UPDATE%';
这篇关于Oracle 数据库审计跟踪的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!