将oracle数据迁移到mysql

通常的数据迁移是通过生成一个.sql文件做为数据载体。但由于数据库平台间的方言或其它差异,是很难实现的。特别是大字段(clob,blob)。各类数据库间的处理机制差异太大。
由于项目需要,摸索了一下。将经验记录下来。 备忘:
一、数据库建模
1、借助powerdesigner,先通过逆向工程,将oracle数据库建模。这样的好处是数据库的表关系已经建起来。

二、生成数据库schema
2、将从oracle产生的模型,正向工程。即生成mysql数据。
这里特别要注意,正向工程前,要修改当前pd所依赖的DBMS.把它修改成mysql.否则生成的sql只能适用于oracle.
修改dbms的步骤如下:






只后就是生成mysql数据库的schema了。


三、通过Convert Oracle to MySql迁移数据
通过这些步骤,还缺初始化数据。期间一些很可能是blob的。
这里要借助工具。比如Convert Oracle to Mysql
工具一是万能的。使用过程中发现一个缺点。
1、不能迁移关系,比如主外键等。所以采用了powerdesigner
2、不能根据依赖关系自动调整数据初始的先后顺序。估计是个跟关系绝缘的家伙。

所以注意一点。先用pd建立关系。再用convert oracle to mysql来迁移数据。在迁移数据时要尽量选择merge模式。也就是不要覆盖原有的表关系。只追加数据。

四、局部调整
有时会报错,数据无法成功迁移。这时候要具体分析。有时是关系不对,要比对原有的oracle数据库,确认关系都对了。有时则很可能是数据的插入的顺序不对,要先插入所外键所依赖的表的数据。一个一个的来调整。
另外:手动进行脚本调试时要注意以下几点:
1.varchar2 -->varchar
2.number -->numeric
3.clob --> text
4.双引号的问题
5.保留字的问题,加``

猜你喜欢

转载自ll-feng.iteye.com/blog/1476260