1

最近,我们的一个站点报告了一个非常奇怪的情况。根据我们的字段,我们发现应该有某种删除,该场景必须发生

在我们的应用程序代码中,该表本身没有删除。所以我们在 gv$sqlarea(因为我们使用 RAC)表中检查了该表是否有任何删除 sql。我们什么也没找到。

然后我们尝试通过我们的 PL/SQL Developer 进行相同类型的删除。我们能够通过 gv$sqlarea 或 gv$session 跟踪所有删除。但是当我们在plsql developer中使用以下查询,锁定,编辑和提交时,没有任何痕迹

select t.*, t.rowid 
  from <table>

我们能找到的东西是 sys.mon_mods$ 有删除计数。但是不会长期保存,这样我们就可以通过时间戳来追溯

谁能帮我找出这个

甲骨文版本:11.1.0.7.0

类型:RAC(5 个实例)

4

1 回答 1

2

gv$sqlarea只显示共享池中的 SQL 语句。如果语句只执行一次,取决于共享池的大小和执行的不同 SQL 语句的数量,一条语句在共享池中的停留时间可能不会很长。我当然不希望在几个小时后,一次性语句仍会出现在合理活跃的系统的共享池中。

假设您没有启用审核并且您没有删除记录的触发器,那么系统是否处于ARCHIVELOG模式?您是否有从删除该行的时间点开始的存档日志?如果是这样,您可能会使用LogMiner来查看归档日志以找到有问题的语句。

于 2013-02-08T07:27:38.337 回答