A和B分别是两台机器上的oracle数据库表,结构相同。
其中B表中可能出现更新、删除、增加、定期备份(后清空)等操作,并且每天都会有若干操作发生。
请问,如何将B表增量更新到A表中去,保证A表中保存B表中的历史数据,
但不能包含B中已经删除的记录,且更新、增加记录等操作要体现在A表中。
请大虾们帮忙看看了

解决方案 »

  1.   

    忘了说了,我对B表没有建立触发器的权限,只有select的权限。不知道能不能解决。
    谢谢各位了
      

  2.   

    你如果只有select权是没有办法把数据写入的!除非你找到了oracle的安全漏洞。
      

  3.   

    是这样的,B表不是我们控制的,是我们合作伙伴提供给我们的数据源,只有读权限,B表由于是在线系统,保存数据有时间限,我门这边的分析系统需要保留B表的历史数据,但不能包含B中已删除的记录、同时还要考虑B表备份清空的情况。所以才有这个需求。
      

  4.   

    那就建一个job。每一段时间把这个B表数据全取下来,先放在一个临时表里。然后再自己写个程序慢慢分析哪些数据变了,哪些数据是新增的
      

  5.   

    目前我也是这么考虑的,好像也有些问题。
    1、但像B表这样的表不止一个,今后随着业务发展,会越来越多,如果每个都写程序的话,工作量比较大。
    2、大多表都是大小上G的,建立临时表可能会影响速度。
    我先用这个方法了试一下了,谢谢 sasacat
      

  6.   

    1,在A库中建立所有需要更新的对象的快照日志
    2,在B库建立连接A库的db link
    3,建立刷新组做增量刷新
      

  7.   

    lwty(藏浪) ,你说的前两步都做过的,不知道增量刷新组和增量刷新怎么做?