异构数据库10T数据迁移方案

一、DB2迁移到ORACLE,同表10亿数据量的迁移方案
1、选择一个中间存储服务器,同时安装db2客户端,oracle客户端,本次试验没有中间服务器,生成文件直接在db2数据库服务器上生成,导入文件也是直接在oracle数据库上导入。生成采用db2的export命令,边查询边压缩的方式生成文件。导入采用oracle的sqlldr命令,边压缩边导入。原因是生产拿给你做中间临时存储的空间只能几百G,对10T数据来说必须压缩处理,外一个原因是减少了网络传输,并行处理。直接看代码:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
以上代码是导出生成文件命令,利用管道做实时压缩,管道文件描述符的阻塞特性做并行的线程个数控制。这里有一个优化的地方就是每一个线程占用一个管道,需要不停的新建管道,删除管道。可以把它做成栈的方式,线程用完之后放入栈,要用管道的时候从栈里取。10个T的数据需要控制查询条件,每一个线程处理多少数据,比如控制在一个线程处理1千万的数据,至于用多少个线程并行处理,要看服务器的磁盘读写能力。
下面是导入的代码:
在这里插入图片描述
在这里插入图片描述
如上面的代码,我控制为5个线程,这里sqlldr连接数据库打印信息可以打印到文件。

猜你喜欢

转载自blog.csdn.net/u013326684/article/details/103074254