如何调试哪个DB用户对表进行了更改,由于表的哪些索引在Oracle中不可用?



我遇到了一个问题,所有表的索引都无法使用,我想调试这个问题的原因。目前,我已经重建了所有的索引,但我不知道这个问题的根本原因,如何找出在表上做了什么更改,由哪个DB用户?

查找索引是如何变得不可用的——普通的插入不会这样做。很可能发生了以下情况之一:

  • 直接路径加载导致唯一索引的数据重复。
  • 表数据在操作(如表重组)中被改变的物理位置。
  • 有人手动修改了索引。

看到:

  • https://docs.oracle.com/database/121/sutil/guid c44aadf7 - 777 d - 4847 a5 - 75 e36b40d0eb.htm # SUTIL1305
  • https://asktom.oracle.com/pls/apex/f?p=100:11:0:::: p11_question_id: 1859798300346695894
  • https://www.databasejournal.com/features/oracle/article.php/3735286/Oracle-Unusable-Indexes.htm

跟踪什么导致了这个问题,将取决于您在数据库上启用了什么级别的审计。如果您至少没有对DDL操作进行审计,那么您可能永远无法确定。

最新更新