需求: 数据库有N张表,每次移交版本的时候都有很多数据脚本。现在想对这些脚本执行前后数据库表中的记录进行监控。
想得到这样的结果:脚本执行完毕之后,我可以看到数据中哪张表的数据有变化,能够知道添加或者删除、修改了数据。修改前是什么,修改后是什么。方案:
1、建立触发器,这样的话很简单,对每张表都建立行级触发器。记录insert,delete,update的操作。
2、将数据库中表的数据查询出来,保存在内存或者文本中,执行完脚本在查询一次,对前后两次的文本进行比较。优点不提了~~缺点:
1、要对表进行操作,生产环境当然不能使用,会影响生产环境。坏处一大堆。
2、对大表的话,就没有啥效率可言了吧。几十万条的记录查询出来保存。也不是啥好方法。不知道大家对这个问题有没有什么想法呢?
想得到这样的结果:脚本执行完毕之后,我可以看到数据中哪张表的数据有变化,能够知道添加或者删除、修改了数据。修改前是什么,修改后是什么。方案:
1、建立触发器,这样的话很简单,对每张表都建立行级触发器。记录insert,delete,update的操作。
2、将数据库中表的数据查询出来,保存在内存或者文本中,执行完脚本在查询一次,对前后两次的文本进行比较。优点不提了~~缺点:
1、要对表进行操作,生产环境当然不能使用,会影响生产环境。坏处一大堆。
2、对大表的话,就没有啥效率可言了吧。几十万条的记录查询出来保存。也不是啥好方法。不知道大家对这个问题有没有什么想法呢?
如果记录操作日志,去查看oracle的审计功能
如果要审计用户登录,可以使用系统触发器审计
另外用LOGMINER这个的话还得对数据库进行操作,这个还是不行。就只想在现有状况下,加入对脚本执行情况的监控,不改变数据的任何东西,包括表。
监控只需要 监控开发人员提交的脚本执行情况,用trigger的话,上生产肯定是不行的。而且这样也比较不通用。就想在不影响当前系统的情况下作监控。
自己看all_tables 给你提供了什么?
修改前执行一遍 修改后执行一遍. 给给我加分啊 这年头回答个问题 不容易 呵呵~
all_tables 有所有表的信息 可以根据表的行数,空间占用 简单的看一下 数据变化... 不知道能不嫩满足你的要求