IBM®
跳转到主要内容
    中国 [选择]    使用条款
 
 
Select a scope: Search for:    
    首页    产品    服务与解决方案     支持与下载    个性化服务    
跳转到主要内容

developerWorks 中国  >  Information Management  >

Data Server Migration Toolkit 2.0 中的新特性

新的迁移路径以及更多

developerWorks
文档选项

未显示需要 JavaScript 的文档选项

样例代码

英文原文

英文原文


级别: 中级

Lakshman Sakaray, 顾问软件工程师, IBM
Anju Sudhakar, 软件工程师, IBM
Joel Hamill, 信息开发人员, IBM

2008 年 9 月 25 日

IBM® Migration Toolkit(MTK)为从其他关系数据库管理系统(RDBMS)迁移到 IBM 数据服务器铺平了道路。在该工具包的 2.0 版本中,可以发现一些新的迁移路径,包括从 Microsoft® SQL Server 到 Informix® Dynamic Server、从 Sybase Adaptive Enterprise Server 到 DB2® for z/OS® 以及从 MySQL 到 DB2 和 Informix Dynamic Server。不仅如此,该版本还增强了从 Oracle 到 DB2 的迁移,提供了命令行界面增强和其他为迁移提供便利的增强。本文对 IBM Migration Toolkit 2.0 中新增的特性作了概述。

简介

MTK 产品的开发方法是以较小的时间间隔提供频繁的迭代版本(iterative drop)。对于 MTK 2.0,MTK 小组发布了迭代版 2.0.2.0、2.0.3.0、2.0.4.0 和 2.0.5.0。本文详细描述每个迭代版本中包括的特性,以及最终 MTK 2.0.5.0 发行版中提供的特性。

下面的表展示了 MTK 目前支持的源数据库与目标数据库的组合。MTK 2.0 中新引入的迁移路径以星号(*)表示。


图 1. MTK 支持的源数据库与目标数据库组合
figure1

MTK 2.0 中增加了很多重要的特性,包括:

  • 新的迁移路径:
    • Microsoft SQL Server 到 Informix® Dynamic Server
    • Sybase Adaptive Enterprise (ASE) Server 到 DB2 for z/OS®
    • MySQL 到 DB2® 数据库产品和 Informix Dynamic Server
  • 对 MySQL 源到 DB2 数据库产品目标的 ENUM 数据类型转换支持
  • 已有的迁移路径的增强
  • 从 Oracle 迁移到 DB2 数据库产品的增强
  • DB2 兼容性特性支持
  • 新增的对新的 Microsoft SQL Server 2005 语法的支持
  • 支持迁移到目标数据库 Informix Dynamic Server 和 DB2 for z/OS 的 MTK Command line Interface(CLI)

Microsoft SQL Server 到 Informix Dynamic Server 的新的迁移路径

MTK 2.0 被扩展为包括从 Microsoft SQL Server 到 Informix Dynamic Server 的迁移。这条新的迁移路径支持将 Microsoft SQL Server 数据类型、DDL 语句和 DML 语句迁移到 Informix Dynamic Server 目标。

MTK 2.0 提供对以下语句、对象和数据的基本迁移支持:

  • 对以下语句的扩展支持:
    • CREATE TABLE
    • CREATE INDEX

  • 对以下语句的有限支持:
    • CREATE VIEW
    • DROP
    • DELETE
    • UPDATE
    • ALTER TABLE

限制:

在 MTK 2.0 中,TIMESTAMP 数据类型不受支持,并且 LVARCHAR 数据类型不支持交替排序序列(alternate collating sequence)。


下面是从 SQL Server 到 Informix Dynamic Server(IDS) 11 的迁移的一些屏幕快照:

为了选择源和目标数据库,打开 Migration Toolkit Product,从 New Project 选项卡中选择源 Microsoft SQL Server 和目标 Informix Dynamic Server V11.10。屏幕将如图 2 所示。


图 2. 选择源和目标数据库
figure2


下面的表说明了 SQL Server 数据类型到 IDS 数据类型的映射:


图 3. SQL Server 数据类型到 IDS 数据类型的映射
figure3

要查看从 Microsoft SQL Server 到 Informix Dynamic Server 的 MTK 转换的示例 SQL 输出文件,请参考 下载 小节。

Sybase Adaptive Server Enterprise (ASE) 到 DB2 for z/OS 的新的迁移路径

MTK 2.0 被扩展为包括从 Sybase Adaptive Enterprise (ASE) Server 到 DB2 for z/OS 目标的迁移。这条新的迁移路径支持将 Sybase ASE 数据类型、DDL 语句和 DML 语句迁移到 DB2 for z/OS 目标。

MTK 2.0 提供对以下语句、对象和数据的基本迁移支持:

  • 对以下语句的扩展支持:
    • CREATE TABLE
    • CREATE INDEX

  • 对以下语句的有限支持:
    • CREATE VIEW
    • DROP
    • DELETE
    • UPDATE
    • ALTER TABLE

限制:
  • 以下数据类型的数据部署不受支持:BINARY、VARBINARY、TIMESTAMP 和 TEXT。
  • 由于 DB2 for z/OS 中的限制,以下操作不受支持:
    • DECFLOAT 数据的数据部署。
    • UNICHAR/NCHAR 数据类型中的 NULL 数据的部署。
    • 包含诸如 ‘^’ 之类的特殊字符的字符数据无法部署,
      因为将数据部署到 DB2 for z/OS 目标的 FTP 命令不能
      将 ASCII ^ 正确地转换为 EBCDIC ^。

下面是从 Sybase ASE 到 DB2 for z/OS, Version 9 的迁移的一些屏幕快照:

在从 Sybase ASE 到 DB2 for z/OS 的迁移中,需要选择源和目标数据库。打开 Migration Toolkit 产品,从 New Project 选项卡中选择源 Sybase Enterprise 和目标 DB2 for Z/OS, Version 9


图 4. 选择源和目标数据库
figure4


下面的表说明了 Sybase ASE 数据类型到 DB2 for z/OS 数据类型的映射:


图 5. Sybase ASE 数据类型到 DB2 的映射
figure5

要查看从 Sybase ASE 到 DB2 for Z/OS 的 MTK 转换的示例 SQL 输出文件,请参考 下载 小节。

MySQL 到 DB2 和 IDS 的新的迁移路径

MTK 2.0 被扩展为包括从源数据库 MySQL 到目标数据库 DB2 Database for Linux, UNIX, and Windows、DB2 for i5/OS® 和 Informix Dynamic Server 的新的迁移路径。

MTK 2.0 支持将 MySQL 数据类型、DDL 语句(CREATE TABLE 和 CREATE INDEX)和 DML 语句(INSERT)迁移到 DB2 数据库产品和 Informix Dynamic Server 目标。

从 MySQL 源到 DB2 数据库产品目标的 ENUM 数据类型转换支持

MySQL 数据库支持 DB2 数据库产品不直接支持的 ENUM 字符串枚举数据类型。MTK 将 ENUM 数据类型映射到带检查约束的 VARCHAR(255)。这个例子包含一个简单的 MySQL CREATE-TABLE 语句,该语句指定一个 ENUM 数据类型列。


清单 1. MySQL 源 SQL 语句
                

CREATE TABLE process (
 id int(10) unsigned NOT NULL auto_increment,
 status enum('WAIT','ACCEPT','DECLINE','STOP') NOT NULL default 'WAIT',
  PRIMARY KEY  (id)
) ;

			

清单 2 包含 MTK 生成的输出,其中 MySQL CREATE-TABLE 语句已经转换成 DB2 中的对应内容,即将 ENUM 数据类型替换为 VARCHAR(255)。


清单 2. MTK 转换到 DB2 目标的 SQL 语句
                

CREATE TABLE process(
    id BIGINT GENERATED BY DEFAULT AS IDENTITY NOT NULL,
    status VARCHAR(255) DEFAULT 'WAIT' 
             CHECK (cap_status IN ('WAIT','ACCEPT','DECLINE','STOP'))  NOT NULL,
    PRIMARY KEY(id)
)!


对已有迁移路径的增强

MTK 2.0 引入了以下已有迁移路径的增强:

  • 扩展了对目标为 DB2 Database for LUW v9 and v9.5 的迁移支持。
  • 扩展了对目标为 Informix Dynamic Server, Version 11.10 的迁移支持。
  • 当转换到 DB2 数据库产品和 Informix Dynamic Server 时,Oracle PLS_INTEGER 被映射到 INTEGER 数据类型。
    Oracle 有专用于 PL/SQL 语言的数据类型 PLS_INTEGER。MTK 2.0 现在扩展为支持这种数据类型,并支持将该数据类型映射到目标 DB2 数据库产品或 Informix Dynamic Server 数据库的 INTEGER 数据类型。
  • 所有长标识符都受支持
    DB2 Database for Linux, UNIX, and Windows Version 9.5 开始支持长达 128 个字符的长标识符;之前,它只支持长度为 18 个字符的标识符。对于长度大于目标 DB2 数据库产品限制的源数据库标识符,之前版本的 MTK 会截短它,并生成惟一的标识符。而 MTK 2.0 则有所改进,它利用 DB2 Database for Linux, UNIX, and Windows Version 9.5 长标识符特性支持,将源数据库标识符原封不动地转换到 DB2 Database for Linux, UNIX, and Windows Version 9.5 中。
  • 到 DB2 数据库产品 DECFLOAT 的可选数据类型映射
    DB2 Database for Linux, UNIX, and Windows Version 9.5 创建了一个新的内置 SQL 数据类型 DECFLOAT(十进制浮点数)。它的最大精度为 34 位。该数据类型与 Oracle NUMBER 数据类型紧密对应。升级后的 MTK 2.0 可以将精度大于 32 位的 Oracle NUMBER 数据类型直接映射到 DECFLOAT(34),对于精度小于 32 位的可选数据类型,将其映射到 NUMBER 数据类型。
  • MTK GUI 和 CLI 提供了更大的灵活性,使您可以包括自己的 DATA、INDEX 和 LONG DATA 表空间。

图 6 展示了 MTK 现在允许包括的表空间:


图 6. 包括 DATA、INDEX 和 LONG DATA 表空间
figure6

Oracle 到 DB2 数据库产品迁移的增强

MTK 2.0 提供对从 Oracle 到 DB2 Database for Linux, UNIX, and Windows 的迁移的增强,包括:

  • 对从 Oracle 到 DB2 9.5 LUW 迁移的 VARRAY 支持
    VARRAY 是 Oracle PL/SQL 中使用的集合数据类型。ARRAY 数据类型是 DB2 9.5 LUW 中引入的。当迁移到 DB2 9.5 LUW 时,Oracle VARRAY 数据类型现在被转换成 ARRAY 数据类型。
  • 对从 Oracle 到 DB2 9.5 LUW 迁移的全局变量支持
    Oracle 包由两个主要部分组成:包规范说明和包主体。包规范说明中声明的变量称作全局变量,或公共变量。这些变量可以在包主体中引用。对全局变量的支持是在 DB2 9.5 LUW 中通过使用 CREATE VARIABLE 语法而引入的。
    由于早期版本的 DB2 LUW 没有全局变量支持,MTK 必须使用一种替代方法来支持它。有了 DB2 9.5 LUW 中引入的全局变量支持,MTK 可以直接将全局变量从 Oracle 映射到 DB2 9.5 LUW。DB2 LUW 中的全局变量的限定名称包括两个部分:模式名和变量名。在会话中,可以通过这两部分的名称访问变量。

DB2 兼容性特性支持

以兼容性模式从 Oracle 迁移到 DB2 9.5 LUW,这允许从源数据库语法到目标数据库语法进行一对一映射。兼容性模式消除了中间用户定义的特性(UDF),这些特性是 MTK 为了提供缺失的功能而创建的,因此提高了 MTK 性能。

要使用这些兼容性特性,可以通过选择目标 DB2 Version 9.5 for Linux, Unix, and Windows (compatibility mode) 创建一个项目,如图 7 所示。


图 7. 创建一个项目
图 7


下面是 MTK 增加的用于目标 DB2 9.5 for LUW 的兼容性特性支持:
  • CONNECT BY 语法。
  • Oracle NUMBER 数据类型被直接映射到 DB2 数据库产品 NUMBER 数据类型。
  • Oracle TO_DATE() 和 TO_CHAR() 函数被直接映射到 DB2 数据库产品内置函数。
  • NVL、DECODE 和 BITAND 被直接映射到 DB2 数据库产品内置函数。
  • 当在 WHERE 子句中指定 ROWNUM 时,可生成更简单的语法。
  • 支持 LEAST 和 GREATEST 内置函数。
  • DUAL 被直接映射到 DB2 数据库产品 DUAL。
  • Oracle (+) 外连接和交叉连接语法被直接映射到 DB2 数据库产品。
  • 序列 CURRVAL 和 NEXTVAL 关键词被直接映射到 DB2 数据库产品。
  • MINUS 和 UNIQUE 关键词被直接映射到 DB2 数据库产品。
  • ROWID 数据类型被映射到 VARCHAR(16) FOR BIT,并增加了 RID_BIT() 函数,以支持 ROWID 操作。
  • 允许子查询中使用相关名称(correlation name)。

要了解更多关于以上特性的详细信息,请参阅 developerWorks 文章 “IBM Migration Toolkit 兼容性特性和命令行接口增强”。


要了解更多关于 DB2 Database for Linux, UNIX, and Windows Version 9.5 中的兼容性特性的信息,请参阅 developerWorks 文章 “DB2 Viper 2 兼容性特性”。

对新的 Microsoft SQL Server 2005 语法的支持

MTK 2.0 增加了 SQL Server 2005 中新引入的语法的支持:


清单 3. 新的表属性和 GRANT 语句
                
- The CREATE-INDEX attributes has allowed to use in the CREATE-TABLE statement 
  as well as added new table attributes PAD_INDEX, STATISTICS_NORECOMPUTE, 
  ALLOW_PAGE_LOCKS, ALLOW_ROW_LOCKS, SORT_IN_TEMPDB, DROP_EXISTING, ONLINE

  CREATE TABLE Customer ( 
 CustomerID int NOT NULL, CONSTRAINT PK_Customer PRIMARY KEY CLUSTERED 
 (CustomerID ASC) WITH (PAD_INDEX  = OFF, FILLFACTOR = OFF,    
                        STATISTICS_NORECOMPUTE  = OFF, 
                        ALLOW_ROW_LOCKS  = ON, 
                        ALLOW_PAGE_LOCKS  = ON, IGNORE_DUP_KEY = OFF,       
                        SORT_IN_TEMPDB = ON,DROP_EXISTING = OFF
                       ) ON PRIMARY
)ON PRIMARY
go

-  GRANT Certificate permissions
GRANT CONTROL ON  db_object TO db_owner
GRANT ALTER ON db_object TO db_owner
go

注意:目前,当转换到目标 DB2 数据库产品或 Informix Dynamic Server 中时,由于这两种产品都不支持该功能,所以 MTK 虽然能识别这些语法,但是忽略这些选项。




MTK 命令行界面(CLI)

MTK 命令行界面(CLI)可以替代图形用户界面(GUI)来调用 MTK。CLI 从命令行通过使用一个配置文件和一些参数来调用 MTK。通过 CLI 可以创建配置文件,为之填充适当的值,并以批处理方式调用迁移过程,而不必使用 GUI。

MTK CLI 界面使用 MTK GUI 用户非常熟悉的概念。各种工件,包括迁移步骤中创建的项目文件和日志文件,在这两种界面中都是一样的。这意味着 CLI 和 GUI 界面之间可以互换工件。例如,可以在 GUI 中使用 CLI 中创建的项目文件。

CLI 可与多个源文件、上下文文件和 DB2 数据库产品表空间一起使用。它支持到 DB2 for Z/OS、DB2 for Linux, UNIX, and Windows 和 Informix Dynamic Server 目标的迁移。

结束语

MTK 的最新发行版 2.0.5.0 是之前所有发行版的一个超集,它包含过去发行的所有特性。我们鼓励您下载这个最新版本,并迁移到 DB2 和 Informix Dynamic Server 数据库产品。






回页首


下载

描述名字大小下载方法
源 SQL 脚本和 MTK 转换后的输出文件examples.zip5KBHTTP
关于下载方法的信息


参考资料

学习

获得产品和技术
  • MTK:IBM Migration Toolkit 是一种易于使用的工具,通过它可以将数据从很多不同的源数据库迁移到任何平台上的 DB2 或 Informix Dynamic Server。

  • DB2 Database for Linux, UNIX, and Windows:最新的 DB2 9.5 扩展了混合数据服务器的创新能力,并节省了深度压缩的成本,从而支持数据的快速使用,保持领先地位,并在操作过程中提取 XML 数据的全部价值。

  • IDS:IBM Informix Dynamic Server (IDS) 提供了出色的在线事务处理(OLTP)性能、良好的可靠性和对各种规模企业的轻松管理。IDS 11 在可用性、可管理性、安全性和性能方面有显著的提高。

  • DB2 for z/OS:IBM 的大型主机和 DB2 for z/OS 可以帮助减少 IT 基础设施的成本和复杂性,简化遵从性,并利用您的核心资产 - 数据。最新的 DB2 9 在很多方面(例如在线模式演变、Unicode、XML、DB2 家族 SQL、实用程序、安全性和遵从性以及 64 位虚拟存储)扩展了传统的 DB2 功能。


作者简介

Lakshman Sakaray

Lakshman Sakaray 是 MTK Development 小组的主管,在 MTK 小组工作长达 3 年多,开发过 MTK 中的很多特性。过去,他在 Informix 客户机开发小组和 Informix classic 服务器方面做了大量工作。


Anju Sudhakar

Anju Sudhakar 是 MTK QA 小组的主管,在 MTK 小组工作长达 3 年。过去,她在 Informix Dynamic Server 测试小组工作。


Joel Hamill

Joel Hamill 是 MTK 信息开发人员,在 MTK 小组工作了 2 年。过去,他曾在 IMS、DB2 for z/OS 和 Informix Dynamic Server 小组工作。




对本文的评价










回页首


IBM 公司保留在 developerWorks 网站上发表的内容的著作权。未经IBM公司或原始作者的书面明确许可,请勿转载。如果您希望转载,请通过 提交转载请求表单 联系我们的编辑团队。
    关于 IBM 隐私条约 联系 IBM 使用条款