通过 IBM Migration Toolkit 的支持把数据从 MySQL 迁移到 DB2 和 Informix Dynamic Server

来源:互联网 发布:淘宝主播怎么找商家 编辑:程序博客网 时间:2024/05/16 10:56
IBM® Migration Toolkit 增加了一些帮助把数据从 MySQL 迁移到 DB2® 或 Informix® Dynamic Server 的新功能。在本文中,学习如何使用这个工具集帮助迁移 DDL 和 DML 语句,了解如何映射数据类型。

MySQL 迁移支持

在 2007 年初,IBM Migration Toolkit 2.0.2.0(MTK)实现了对从 MySQL 4.x 和 5.x 迁移到 DB2 和 Informix Dynamic Server(IDS)目标的有限支持。后续的 MTK 版本改进了最初的支持。改进的支持包括迁移某些 DDL 和 DML 语句。

MTK 支持对以下 MySQL SQL 语句的完全转换:

  • CREATE TABLE 语句
  • CREATE INDEX 语句

MTK 还在很大程度上支持以下 MySQL SQL 语句:

  • INSERT 语句
  • ALTER TABLE 语句
  • DROP TABLE 语句
  • SELECT 语句
  • DELETE 语句
  • UPDATE 语句

在下面几节中,首先讨论在从 MySQL 迁移到 DB2 时如何利用 MTK 支持,然后讨论从 MySQL 迁移到 IDS 的情况。

第 1 部分:MySQL 到 DB2 迁移支持

从 MySQL 到 DB2 的迁移支持只适用于 DB2 Database for Linux®, UNIX® and Windows® Version 8.2 或更高版本,以及 DB2 Database for iSeries® V5R3 或 V5R4。本文主要关注针对 DB2 Database for Linux, UNIX and Windows 的 MTK 支持。

CREATE TABLE 语句

CREATE TABLE 语句支持包括对 MySQL InnoDB 引擎支持的所有语法进行转换。这包括数据类型映射、数据提取和在 DB2 中部署数据。MTK 还支持 MyISAM 引擎,这种引擎的语法是相似的。但是,不支持应用于 fhs MyISAM 引擎的空间类型。

表 1 解释了 MySQL 数据类型如何映射到 DB2 数据类型。还指出了特定数据类型的可选映射(用户可以用这种映射覆盖 MTK 选择的默认映射)。


表 1. 数据类型映射
MySQL 数据类型DB2 数据类型TINYINTSMALLINTSMALLINTSMALLINTMEDIUMINTINTEGERINTINTEGERINTEGERINTEGERBIGINTBIGINTREALDOUBLEDOUBLEDOUBLEFLOATDOUBLEDECIMAL(p,s)

其中:
s > 0 && p >= s
s > 0 && p < s
s < 0


DECIMAL(min(p,31), min(s,31))
DECIMAL(min(p,31), min(s,31))
DECIMAL(min(p,31),0) NUMERIC(p,s)

其中:
s > 0 && p >= s
s > 0 && p < s
s < 0


DECIMAL(min(p,31), min(s,31))
DECIMAL(min(p,31), min(s,31))
DECIMAL(min(p,31),0) TINYINT UNSIGNEDSMALLINTSMALLINT UNSIGNEDINTEGER

可选: SMALLINT MEDIUMINT UNSIGNEDINTEGERINT UNSIGNEDBIGINT

可选: INTEGER BIGINT UNSIGNEDDECIMAL(20,0)

可选: BIGINT REAL UNSIGNEDDOUBLE

可选: DOUBLE DOUBLE UNSIGNEDDECIMAL(p,s)FLOAT UNSIGNEDDOUBLEDECIMAL UNSIGNEDDECIMAL(p,s)NUMERIC UNSIGNEDDECIMAL(p,s)DATEDATETIMETIMETIMESTAMPTIMESTAMPDATETIMETIMESTAMP

可选: TIME YEARCHAR(4)CHAR(l)CHAR(l)

可选: VARCHAR VARCHAR(l)VARCHAR(l)

可选: CLOB TINYBLOBBLOB(255)BLOBBLOB(65535)MEDIUMBLOBBLOB(16777215)LONGBLOBBLOB(2000000000)TINYTEXTCLOB(255)TEXTCLOB(65535)MEDIUMTEXTCLOB(16777215)LONGTEXTCLOB(2000000000)

清单 1a 和清单 1b 说明 MySQL 数据类型和 create table 语句如何转换为 DB2 语法:





本文转自IBM Developerworks中国

      请点击此处查看全文

 
原创粉丝点击