环境
Win7 x64
MySQL:5.5 (jeewxV2.1)
DB2:9.7
迁移主要是迁移表和表数据,
推荐使用迁移工具生成建表语句,建好表后,再执行导出的insert语句插入数据,因为工具导入数据可能会遇到这样那样的问题
如果导出的sql是多个,可以用以下命令合成一个
copy *.sql all.sql 也可以把这句话放到bat批处理文件里
插入数据前先禁用所有外键,插入后再启用
禁用约束基本语法:
ALTER TABLE 表名称 ALTER FOREIGN KEY 约束名称 NOT ENFORCED
启用约束基本语法:
ALTER TABLE 表名称 ALTER FOREIGN KEY 约束名称 ENFORCED
(这些语句可以在后面的报告(日志)里找到)
介绍
IBM Migration Toolkit 是IBM官方出的迁移工具,支持多种源数据库迁移到DB2或Informix
源数据库:Sybase、SQL Server、Oracle、Informix、MySQL
目标数据库:DB2、Informix
下载
介绍及下载地址
http://www.ibm.com/developerworks/cn/data/downloads/migration/
MKT是个java程序,有windows版和linux版
如果你没有IBM账号,请到此处下载
http://download.csdn.net/detail/haveqing/9352033
安装
我安装到了D:\MTK,
准备
1、因为我是64位环境,需要使用64位jdk,否则可能会报错,配置环境变量
2、把mysql驱动mysql-connector-java-5.1.24-bin.jar放到%JAVA_HOME%\jre\lib\ext下
3、迁移时不支持timestamp on update CURRENT_TIMESTAMP,需要on update CURRENT_TIMESTAMP先去掉,迁移后再在目标上加,源库上也别忘了还原。
源表:weixin_group、weixin_huodong需要调整
4、db2建库脚本,pagesize我选的是32K,16K的也可以
db2 CREATE DATABASE jeewx AUTOMATIC STORAGE YES ON 'D:\' DBPATH ON 'D:\' USING CODESET UTF-8 TERRITORY CN COLLATE USING UCA500R1_LZH PAGESIZE 32768
运行
菜单 IBM Migration Toolkit 2.0 -- Toolkit
运行后cmd窗口会报一个错,不影响使用
java.lang.ClassCastException: java.lang.Object cannot be cast to java.lang.String
新建项目
1.Specify Source
Extract 导出源库结构
要是odbc,需要下载安装mysql的odbc驱动,但是似乎没有64位的,用不了odbc
选择 Native driver information -- Use native JDBC dirver
需要把mysql驱动mysql-connector-java-5.1.24-bin.jar放到%JAVA_HOME%\jre\lib\ext下
选择源库,输入数据文件名
点击Extract后列表里会生成jeewx.src,双击可单开查看,里边含有建表语句,主外键等
2、Convert
日期格式可以输入
Advanced Options
不要尝试在这里指定表空间,因为你指定了,他会去创建一个,再使用。
可以手动修改jeewx.db2文件指定表空间
语法:
CREATE TABLE JEEWX.TEST ( A CHAR(1) ) IN jeewx_data INDEX IN jeewx_idx;
使用UE正则替换
%)!$
替换为
)
IN jeewx_data
INDEX IN jeewx_idx!
点击Global Type Mapping可查看编辑类型映射,一般默认的就行
左侧的jeewx.src是源库的建表语句,右侧convert后生成的是目标库的建表语句jeewx.db2
双击jeewx.db2可查看编辑
3、Refine
可查看Convert的报告,要是有错误需要调整,警告和消息可以忽略。
4、Generate Data Transfer Scripts
Import是执行insert
load是从底层装载数据文件(效率高)
这个两个选那个都行,最后看选那个错误少,就用哪个。
点击Create Scripts后,右侧会生成一堆脚本
5、Deploy to target
可以导入到本地数据库,也可以导入到远程数据库(远程数据库也可以先编目到本地)
不要选择Use your system current user ID and password
输入用户名,密码,会导入到这个用户名对应的模式下(用户名和模式是同名的)
最下面的3个
1.建表结构,主外键等
第2次导,就把这项去了
2.抽取数据
3.导入数据
6、报告
上面的链接都可以点开,
下面的红色字体报错的也可以点开,查看日志,分析解决
如果有的表没导成功,可以清空后,手工执行insert
如weixin_texttemplate表content字段需要调大
truncate WEIXIN_TEXTTEMPLATE immediate;
修改TIMESTAMP默认值
ALTER TABLE WEIXIN_GROUP ALTER COLUMN ADDTIME SET WITH DEFAULT CURRENT_TIMESTAMP ; ALTER TABLE weixin_huodong ALTER COLUMN endtime SET WITH DEFAULT CURRENT_TIMESTAMP ;
部分报错的解决方法
The connection to the DB2 database jeewx failed.
[jcc][10389][12245][3.57.82] 装入本机库 db2jcct2, java.lang.UnsatisfiedLinkError: D:\Program Files\IBM\SQLLIB\BIN\db2jcct2.dll: Can't load AMD 64-bit .dll on a IA 32-bit platform 时产生故障: ERRORCODE=-4472, SQLSTATE=null
用64位jdk
SQL3126N 远程客户机需要文件和目录的绝对路径。
1.改用db2move import命令导入
2.如果使用"db2 load from"的话load的数据文件一定要是db2远程服务器上的保存的文件才能load,否则会报错,"SQL3126N 远程客户机需要文件和目录的绝对路径"
而messages文件则是保存再本地的。
3.如果你想要load本地的数据文件到远程db2服务器,可以使用"db2 load client from",这样就可以把本地的数据文件load至远程服务器了。(这个没试过)
4.可以把数据文件拷贝的远程服务器上,再改变load时的文件路径
参考:
通过 IBM Migration Toolkit 支持把数据从 MySQL 迁移到 DB2 和 Informix Dynamic Server
http://www.ibm.com/developerworks/cn/data/library/techarticles/dm-0807patel/
使用 IBM DB2 Migration Toolkit 迁移数据
http://www.ibm.com/developerworks/cn/data/library/techarticles/dm-0411yip/
从 MySQL 或 PostgreSQL 迁移到 DB2 Express-C
http://www.ibm.com/developerworks/cn/data/library/techarticles/dm-0606khatri/
DB2与MySQL数据转移
http://www.shangxueba.com/jingyan/107360.html
相关推荐
**IBM Migration Toolkit** 是一款由IBM提供的专业数据迁移工具,旨在帮助用户轻松地在不同的数据库系统之间进行数据源迁移。这款工具支持多种数据库平台,包括SQL Server、MySQL、Oracle以及DB2,使得在这些数据库...
【IBM DB2 Migration Toolkit】是IBM提供的一款强大的数据库迁移工具,专为帮助用户从其他数据库系统,如Oracle、SQL Server等迁移到DB2数据库而设计。这个工具集旨在简化迁移过程,减少潜在风险,提高迁移效率,...
这款工具能够帮助用户轻松地将数据从一个数据库系统迁移到另一个,比如MySQL、Oracle、SQL Server、Access以及DB2等。在数据库管理中,数据迁移是一个至关重要的任务,尤其在企业系统升级、数据库整合或云服务迁移时...
ESF Database Migration Toolkit Standard是一款数据库迁移工具,支持如下数据库和文件系统的迁移:Oracle, MySQL, SQL Server, PostgreSQL, IBM DB2, Visual Foxpro, SQLite, FireBird, InterBase, Microsoft ...
当前支持的数据库:PostgreSQL, SQL Server, SQL Azure, LocalDB, MySQL, Oracle, IBM DB2, Informix, HP Vertica, NuoDB, Teradata, Sybase ASE, Firebird, SQLite, SQLCe, Access, dBase, FoxPro 等等。...
IBM Migration Toolkit(简称MTK)是IBM提供的一款强大的数据迁移工具,旨在帮助用户将不同类型的数据库系统中的数据高效、安全地迁移到IBM的DB2数据库。在"ibm_mtk_V2_win"这个版本中,特别针对Windows操作系统进行...
根据提供的文件信息,我们可以推断出“mtk_2050”的文档实际上是指IBM Migration Toolkit(以下简称MTK)的用户指南与参考手册版本2.0.5.0。这份文档详细介绍了如何使用该工具进行数据库迁移的过程及相关注意事项。...