如何能够查看,在指定时间段内数据的变更情况

qq_15004481 2019-07-23 06:42:16
我所从事的项目是多系统集成项目,我只是负责众位系统中的其中之一。

情况这样的,我们的系统是固定在凌晨12点〜早上7点执行实施,会有大批量的数据对数据库表进行更新,删除,插入操作。
我所负责的系统中,ORCALE的表大概有二千多个。投入的数据量也很庞大!

某天,我们系统的投入数据有问题,导致要精查这一天投入的数据情况。
所以数据库管理员权限,是否可以查询出凌晨12点〜早上7点这个时间段内,有哪些表进行了“增”“删”“改”的操作??
我不想在二千多个表中,一个个用SELECT语句来查询更新时间(已经被删除的数据也不可能用SELECT来查询)
...全文
486 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
ZJHZ_叶 2019-08-20
  • 打赏
  • 举报
回复
SELECT * FROM USER_TAB_MODIFICATIONS;
AHUA1001 2019-08-20
  • 打赏
  • 举报
回复
不知道你的系统是什么样子,但是银行的系统,应该很庞大,而且会有一些规范,不会轻易让你修改数据库上的一些内容。 所以,增加触发器的方案,无论是从数据库的稳定性,还是效率上来说,都是不可行的。 通常来说,像这样项目的数据库,数据是不会直接用DELETE物理删除掉的,是在表里,增加DELETE_FLAG标志位,来实现数据的物理删除的。临时表另当别论,而且临时表的数据,统计起来也没啥意义。 还会有CREATE_TIME和UPDATE_TIME来记录数据的创建时间和最后更新时间的。 您可以根据这3个字段,在不修改现有数据库任何内容的情况下,统计出您需要的数据的。
qq_15004481 2019-07-24
  • 打赏
  • 举报
回复
引用 4 楼 wilson1966 的回复:
银行系统应有主文件及异动檔
看异动檔就好了
银行系统没有删除功能,只有注记为删除而已

不是不会删除,而是会删除。
从业务上来说,系统中会有临时表,当临时表写入主表后,临时表的数据会被物理删除。

现在的问题不是系统崩溃,而是系统正常执行。不过对于数据有问题,所以也和异动档没有问题
wilson1966 2019-07-24
  • 打赏
  • 举报
回复
银行系统应有主文件及异动檔
看异动檔就好了
银行系统没有删除功能,只有注记为删除而已
qq_15004481 2019-07-23
  • 打赏
  • 举报
回复
引用 1 楼 卖水果的net 的回复:
1、触发器方式,如果是2000张表大量数据写入,可能会影响你的数据库整体性能。
2、审计,建议使用这个。
3、分析日志,操作上要复杂一些。


谢谢版主的回复。

我所管理的这个项目是某国家银行系统。银行可想而知,数据量很大。仅数据库就分为ORACLE,DB2,MONGO。
对于ORACLE又分为多个系统的SCHEMA,我们2000多个表是归属于我们系统独立的SCHEMA管理
我所从事的是JAVA和SHELL,数据库并不是我所管,我们在国外有专门的DBA

但对于这次的数据问题,要做出解决计画。
这个计画要由我们来制订,计画和实行方案都由我们提交给国外的DBA来进行实施。
所以,第一,我对于ORACEL 的DBA得确能力有限,需要帮助;第二,也想知道有哪些办法可以解决查询到有哪些表被进行过改动
minsic78 2019-07-23
  • 打赏
  • 举报
回复
dbms_logmnr
卖水果的net 2019-07-23
  • 打赏
  • 举报
回复
1、触发器方式,如果是2000张表大量数据写入,可能会影响你的数据库整体性能。 2、审计,建议使用这个。 3、分析日志,操作上要复杂一些。

3,499

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 高级技术相关讨论专区
社区管理员
  • 高级技术社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧