最近客户要求把mysql数据库改为用db2数据库,真是醉了,市面上各类数据库,语法不一样,函数不一样,工具也不一样,增加了程序员的负担。我用过Oracle、mysql、db2数据库,感觉db2是最难用的,可能用习惯了Oracle,用db2特别难用。但是客户是上帝,让干嘛就干嘛呗。于是上网搜了搜迁移工具,十分感谢IBM开发了IBM MTK数据库迁移工具,也许是IBM为了抢占其他数据库市场才开发的(只是猜测,如果不对,与本人无关
)。同时也气愤IBM,为什么要开发db2,给我们制造困难
。下面说一下MTK的使用。
简介
IBM Migration Toolkit(MTK) 是IBM官方出的迁移工具,支持多种源数据库迁移到DB2或Informix。
源数据库:Sybase、SQL Server、Oracle、Informix、MySQL。
目标数据库:DB2、Informix。
下载
准备
1、安装jdk,要与你操作系统的位数一样,要么都是64位的,要么都是32位的。
2、把mysql驱动mysql-connector-java-5.0.6-bin.jar放到%JAVA_HOME%\jre\lib\ext下
3、db2建好数据库
运行
运行IMB migration tookit 2.0,cmd窗口会报一个错误,但是不用管它,不影响使用。
上面创建一个新工程后,出现以下界面,在“Specify Source”中点击“Extract”按钮
上图配好后,点击确定出现下图
选择好源数据库,填写好导出的文件名后,点击“Extract"按钮,就生成test.src,双击打开可以查看,里面包含建表语句,主外键等。
在”Convert “tab页中,修改如下
点击”Convert“按钮后,会在”Refine“ tab页中生成报告,如果有错误,就需要修改test.src,警告和消息可以忽略
修改完错误后,在”Generate Data Transfer Scripts" tab页中做如下配置
做完上面配置,点击“Create Scripts"按钮,生成右边的一堆脚本。
在”Deploy to Target“ tab页中,做如下配置
一共做两次Deploy:
第一次配置(迁移表结构)如下
这样配置,只是迁移表结构,先不迁移数据,因为迁移数据可能会引起很多错误。点击“Deploy”后,会进行迁移表结构,然后生成报告,根据报告有错误的话,修改错误语句,将语句拷贝出来单独执行即可。
第二次配置(迁移数据)如下:
进行抽取数据和导入数据。然后生成如下报告:
根据报告结果,如果有的表没导成功,可以清空后,手工执行insert。