我有一个相当大的数据库(1100个表左右)。我有兴趣拍摄数据库的快照,在应用程序中做一些工作,拍摄另一张快照并比较两者以找出触及的表格。我正在使用TOAD for Oracle。这样的事情是可能的,还是有更好的方法呢?
答案 0 :(得分:0)
我不是真的使用TOAD,但我认为它与你想要的东西没什么关系。
假设只有一个应用程序正在运行,我认为您可以通过检查DBA_TAB_MODIFICATIONS
表需要设置MONITORING
属性来检查访问了哪些表。查看ALL_TAB_MODIFICATIONS的文档然后,您可以将其与对要监视的表启用细粒度审计相结合。这将允许您监视INSERT,UPDATE和DELETE查询,查看绑定变量等等。检查文档About Fine-Grained Auditing您需要让Enterprise Edition使用细粒度审核
您是否需要还原应用程序所做的更改?
如果是这样,恢复更改的最佳和最简单的方法是Oracle闪回技术。它只是允许您根据闪回保留目标检查表的先前状态。同样,文档在主题Using Flashback Database and Restore Points和Oracle Flashback query上非常强大。闪回技术是一个额外的功能,必须从Oracle购买。
理论上你也可以通过数据库时间点恢复来做到这一点,这是通过RMAN检查文档获取有关此Database Backup and Recovery Basics 10g的完整信息来完成的。这是一种矫枉过正,我不推荐它适用于您的场景。
我认为解决问题的最佳方法是在应用程序端添加或启用SQL查询记录。