以下是利用该工具将原有的Oracle数据库中的数据导入到MySQL的过程。
1、 运行MySQL Migration Toolkit,一路“Next”到“Source Database”,在Database System中选择Oracle Database Server,如果第一次使用会告之要求加载驱动程序ojdbc14.jar。
加载驱动程序之后,界面将变成如下的形式,在其中填写Oracle数据库的连接信息,按“Next”继续。
2、 在Target Database中默认Database System为MySQL Server,在Connection Parameters中填写相应的MySQL数据库的连接信息,按“Next”继续。
3、进行数据库连接测试,测试通过后按“Next”到Source Schemata Selection,点选准备进行数据迁移的Schemata后按“Next”继续。
4、在Object Type Selection,点Detailed selection按钮,在下方左侧列表中选择不进行迁移的表,将其放入右侧列表中,即左侧列表剩余的表都将进行数据迁移。选择好之后按“Next”继续。
如果源数据库和目标数据库连接信息无误,会显示“Execution completed successfully”,点“Advanced”会显示详细的信息;如下图,点“Next”
选择Schemata,也可以用“ctrl”或则“shift”选择你需要的多个schemata,如图7,点“Next”,
图7.
实现数据转化,如图8,点“Next”,
图8.
如图9所示,选择需要迁移的表。默认选择schemata下所有的表。点“Detailed selection”,如图10所示,移除不需要的表,点“Next”,
图9.
图10.
通过“set parameter”设置“object mapping”的参数,如图11,点“Next”,
图11.
对象被执行迁移,如图12,点“Next”,
图12.
后面的基本上就是点“Next”,直到完成,在图13,出现一个错误:
错误提示:
Packet for query is too large (1767187 > 1048576).
You can change this value on the server by setting the max_allowed_packet' variable.
由于oracle表中用了varchar2(4000),表中连续4个字段都是varchar2(4000),大于mysql5系统默认值“max_allowed_packet=1048576”,
解决方式:
在mysql配置文件,(linux)vim /etc/my.cnf添加:
[mysqld]
max_allowed_packet=16777216
至于其他系统,找mysql启动配置文件,添加即可。
图13.
最后查看log。