情况如下:
两个相同的项目各自跑在不同的服务器上,也就是一个项目对应一个数据库跑在各自的服务器上(这么搞原因就先不说了,先就问题),现在两个项目要合并在一起,数据库也合并到同一台服务器上,麻烦来了,两台服务器每天都各自在跑,每天都有新的数据产生,现在要把其中某一个数据库中的数据合并到另一个数据库中,问题产生了,比如基础数据产生的主键不一样,引用表在产生数据的时候插入的值不一样,这些值要修改核对,又比如同一张表中各自产生的主键有可能冲突这里想大家集思广益帮忙想一下这种情况下如何移植比较好,采用什么工具,需要注意的问题等等,谢谢大家

解决方案 »

  1.   

    这个只能一个表一个表去弄了。
    对于业务数据表,自己写存储过程实现吧。把插不进的记录放在临时表里面,最后再去处理这些插不进去的数据。
    基础表,我的理解是配置表,比如车型,可能这个库有ABCD四种,那个库有BCDEF五种,整合后要共有ABCDEF六种,那么这种纯业务数据的比对,直接用merge into来处理,关联的表(比如销售情况表)合并后,把相应的关联的主键(比如B在第一个库里面ID是002,在第二个库里面ID是001,那么合并后假设采用002作为主键)统一修改下。能想的只有这么多了。为了数据精确,只能一个表一个表来做了。
      

  2.   

    我个人的想法与crazylaa兄的比较一致,为保证数据只能一个表一个表的比对,但这样就是时间要很长,两个库又都在不停的加数据,当然把B集中到A中,A的变化不管,然后就是集中考虑移动B的数据,目前客户要求数据整合的时间让我给说延迟一段时间来做了,所以这段时间就是尽可能的考虑并动手尝试数据整合中各个问题,为最后的成功整合做做准备
      

  3.   

    建议新建一个数据库,然后建dblink到以前的两个数据库,按时间段一张表一张表做合并.直到最后把application联到新的db的时候把最新产生的data从之前的两张表的合并过来,这样思路清晰,风险也小.