一、背景
新旧系统数据库不一致,要将旧系统数据迁到新系统上。部分关键表的数据,更改数据结构(类型长度等)录入到新库表中。单表数据量百万-千万。
二、迁移工具
1、vc开发程序或其他开发工具,同时连接sql和oracle,一一对应数据库表和字段。对应字段间的映射关系,修改主键等。灵活性大。
2、据说kettle是开源数据迁移软件,有兴趣的可以试试。附一个例子: http://ainidehsj.iteye.com/blog/1735434
三、小技巧
1、vc连接数据库采用otl方式,速度较快。
2、oracle相关表关闭logging功能,insert语句采用insert / +APPEND / into
3、数据后期处理时,因为数据量太大,往往采用create table as select
方式取出要处理的数据或者按照自己希望的方式进行排序,在新建表中省去order操作。同时也删除索引等,根据需要重建索引,处理完毕后复原所有索引。
4、并行处理:待处理数据分成几块(本机4核处理器,故分成3块,plsql占用一个核),写3个存储过程,生成3个job,让3个job同时运行(一个job运行一个存储过程),可实现并行处理。(存储过程的并行好像没法实现,依托于job实现并行)