我现在手上有个项目,做数据的迁移,要求是将数据库A的数据迁移到数据库B中去。
现在大状况如下:
1) A中的表结构和B中的表结构大致相同,但略有差异,如A中有某些字段B中没有,A中字段结构为Number,B中变为VARCHAR。
2) 数据量也比较大,每张表少的有100万,多的有上千万。而且有些BLOB存储的还是附件文件。
3) 两个数据库肯定不在一台server上,是跨互联网的。请问前辈能否给点建议,我用Oracle代码做还是用JAVA 做?要求如下:
1) 保证数据的完整性,数据不能丢。
2)效率不能太低。
3)尽量考虑操作的简便性。因为我是给客户提供代码,让他们自己去操作。

解决方案 »

  1.   

    简单的办法应该是 A 库导出 dump 文件,然后导入到 B 库,然后再修改表结构使之与 B 库的最终要求一致。
      

  2.   

    我觉得这种一次性的需求还是采用1楼的方法比较好。
    如果是客户考虑到数据安全性要求必须自己操作的话,那也只能使用java来做了,都不在一个局域网内,用oracle代码不现实。
    如果需求是数据合并而不是数据覆盖,那就算是自己操作1楼的方法也不行。
    只能使用java代码一张张的表处理,提高效率的话可以使用socket通信加多线程处理(用线程池控制并发数,一个线程处理一张表)。
      

  3.   

    这涉及到oracle的字段类型不同和blog字段问题,直接dump导入或者数据泵dmp文件导入都会出现问题。这需要写程序至少对这2种情况判断,
      

  4.   

    对于oracle来说100万条数据应该不算多吧