最近重庆移动BOSS1.0系统升级为BOSS1.5,原有与BOSS1.0相关的很多外围系统都需要做数据迁移,我们公司负责的渠道系统CMSS也需要做大量的数据迁移。在过程中,遇到一个问题。具体情况是:CMSS系统使用的是Sybase ASA 12.5数据库,BOSS1.5使用的是ORACLE,现在从sybase到oracle做数据迁移,有很多细节的问题会发生,比如日期格式问题等等,这些都好解决,最大的问题是BOSS1.5系统的迁移接口只能接受10万条记录的数据文件,但我们很多需要迁移的业务表都在几千万以上,没办法,为了解决这个问题,我只有使用向WEB系统查询时用的“分页”方式来处理我们的大业务表数据的导出,也就是BCP分页导入数据了。 我是在Solaris上做了个shell程序来完成的。主要实现方式是: 1.通过sybase的sp_spaceused系统存储过程得到大概的整表记录数,然后计算每页的起始记录位置。 2.通过每页的起始记录位置,使用BCP工具导出每页数据到每个文件中。代码如下:1.按BOSS要求的命名方式生成文件名称(genfilename.sh)
2.计算目标业务表的总记录数(gettbcount.sh)
3.FTP数据文件到接口机器(ftp.sh)
4.主程序,分页生成数据文件(main.sh)
Powered by: BlogJava Copyright © acooly