数据库迁移,SqlServer2008R2迁移到ORA10g

数据库的数据量:
数据库的数据大约24G左右,一共有2000多张表,其中上百万条记录的表在25个左右,上千万条数据的表有一个。
工具:
使用的是SqlServer2008R2内置的SQL Server Business Intelligence Development Studio。

迁移的过程中遇到的问题:
假设你的Business Intelligence Development Studio运行机器环境内存是4G,32位操作系统。

第一种方式导入:
普通的表导入使用SSIS包就可以解决。这里的普通指的是:数据量小,小于30万条。
第二种方式导入:
一是:百万条以上的数据,二是:或者数据量不大但是数据多。
这两种情况的使用平面文件的导入方式来导入,不然的话容易遇到内存溢出的问题。

第一种方式导入可能遇到的问题:
①SQL和ORA 的数据类型不一致,运行时报数据类型不一致的错。
这时需要调整两边的数据类型一致,并且字段长度也要统一。对于SQL中text类型的数据,在ORA中改成VARCHAR2(4000)就可以,image类型在数据转换里面修改成

DT_IMAGE类型

注意数据流里面的条件转换的那个地方也要修改具体的数据类型,与ORA保持一致。
②对于NOT NULL ;在ORA里面 某一列设置为NOT NULL 那么 NULL 和'' 都插入不进去,但是SQL中某一列设置为NOT NULL ''是可以插进去的,这时需要修改ORA中的约束
③对于表结构不一致,在数据转换那里可以忽略掉不一致的列;最简单的方式在数据迁移之前,把两边的数据结构调整成一致的。
第二种方式可能遇到的问题:
①报约束不一致,也就是重复插值的问题。
解决方法:在数据迁移之前把所有的约束可触发器都停用掉,数据迁移完在启用。
这样还不行的话,那就清一下数据库。
②类型不一致。
这里可能已经把数据类型调整一致了,还报错?
那就检查一下你生成的.text数据文件,很可能是数据文件和数据库中的列不对应了,错位了。引起错位的原因是,数据中的特殊字符比如逗号什么的引起的,这里具体问题具体分析。
③日期类型不一致;
SQL中的日期类型精确到秒后好几位,但是ORA中精确位数就不是了,解决方法:在控制文件里面写一下数据截取转换。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值