来源:
数据库技术网
作者:
若水
2008-05-14/21:01
使 用 MTK,可以将数据类型、表、列、视图、索引、存储过程和触发器自动地转换成等价的 DB2 数据库对象。MTK 向数据库管理员(DBA)和应用程序程序员提供了使迁移任务自动化所需要的工具,而以前这些任务不但效率低下而且开销巨大。通过使用 MTK 中的以下特性,您可以减少停机时间、消除人为错误,以及降低人工和与传统数据库迁移相关联的其它资源消耗:
-
通过使用直接源数据库访问(JDBC™/ODBC)或导入的 SQL 脚本,从源 DDL 语句中抽取数据库元数据
-
使数据库对象定义的转换自动化,这些对象包括存储过程、触发器、包、表、视图、索引和序列
-
使用有用的与 SQL 和 Java™ 兼容的函数,这些函数使转换在功能上是精确和一致的
-
使用 SQL 转换器工具来实时地执行查询转换,或将该工具用作 T-SQL 和开发人员的 DB2 SQL 学习辅助
-
查看和细化转换错误
-
使用部署选项有效地实现已转换的对象
-
生成和运行数据移动脚本
-
用详细迁移日志文件和报告跟踪对象转换和数据移动的状态(包括错误消息、错误位置和 DDL 更改报告)
在数据库解决方案决策中考虑使用 MTK
迁移到新数据库的决策需要对许多将影响业务的因素进行仔细考虑。其中一个因素是:将数据库对象、存储过程和物理数据从原始数据库迁移到 DB2 所需要的资源分配。与数据库迁移相关的人工、停机时间和可能发生的人为错误,这些都会极大地影响您总体数据管理升级的投资回报(ROI)。获得功能全面的迁移工具,以帮助您根据业务迁移规范定制对象,能够显著地降低与数据库转换相关的开销。尽管有几种为数据库迁移提供资源的简单工具,但几乎没有一种能在允许您在工具界面内定制 DDL 对象的同时还支持过程语言(如 T-SQL)。它们也不支持对复杂对象(如触发器和存储过程)的细化和转换。MTK 与其它迁移产品相比的过人之处在于,它在您将数据库对象部署到目标数据库之前,帮助您查看和手工定制数据库对象。
MTK 支持大多数关系数据库管理系统(RDBMS)中存在的大部分特性的转换。但是,对于某些迁移,可能有复杂的 RDBMS 特性(如可扩展性对象和集合)无法由迁移实用程序处理,而随着被转换的 RDBMS 特性复杂性的增加,自动化级别就降低了,并且需要额外的手工干预。MTK 的价值在此类复杂的迁移环境中就体现出来了,此时,该工具可以用作手工元数据操作的集中式界面。此外,MTK 可以使其余数据库对象的转换自动化,并让您将宝贵的资源集中投入到最复杂的 RDBMS 特性上。
MTK 和总体迁移策略
数据库迁移是多阶段过程,需要大量的计划和项目管理工作。理解一般迁移过程以了解 MTK 可以如何以及在何处适合您的策略,这很重要。通常,迁移过程由以下几个阶段组成:
-
迁移前规划和评估:在本阶段,您定义迁移的范围,并评估资源规划和安排任务时间表,任务包括风险评估、概念验证、数据备份、分段、时间段计划和迁移技能培训。
-
迁移:在本阶段中,转换专家或 DBA 进行向 DB2 的转换,并将脚本和数据直接部署到目标 DB2 数据库。
-
迁移后测试和验证:这个最终的迁移阶段负责调优目标数据库、迁移应用程序、设置生产环境、执行测试并培训 DB2 用户。
MTK 旨在用于迁移的第二阶段;这个阶段包括数据库对象的实际转换,以及将那些对象和数据部署到目标 DB2 数据库。虽然 MTK 会在迁移的最关键阶段辅助您,但正确地实现其它阶段对于确保成功和有成本效益的迁移还是不可或缺的。IBM 提供了很多迁移经验,可以帮助您概括和实现迁移策略的所有阶段。
MTK 是如何工作的
MTK 界面提供了五个迭代的步骤(请参阅图2);MTK 界面中的每一页代表转换过程中的一步。
图 2. MTK 的五个步骤
五步迁移过程从“指定源(Specify Source)”步骤开始,它用来标识要转换的对象的源。在整个迁移过程中,在 转换(Convert)步骤将来自源输入的对象转换成 DB2 对象,然后在 细化(Refine)步骤中查看和定制转换结果。您重复 转换和 细化步骤,直到 Refine选项卡中显示的转换结果是准确和完整的为止。在最后两个迁移步骤中,您 生成数据转移脚本(Generate Data Transfer Scripts)并将数据库对象和数据 部署(Deploy)到目标 DB2 数据库。
迁移环境
当您设置一个要在其中进行迁移的环境时,您要指定运行数据库服务器的操作平台。源数据库管理器存在于一个特殊的平台上,而 DB2 通用数据库可以存在于另一个平台上,DB2 Migration Toolkit 在 Microsoft® Windows NT 或 Windows 2000 上运行。#p#分页标题#e#
如果您的目标 DB2 数据库管理器在 Windows NT 或 Windows2000 上运行,那么您可以将 DB2 Migration Toolkit 与 DB2 安装在同一系统上。用 ODBC 或 JDBC™ 本机驱动器访问源数据库。如果文件包含已用正确格式(标准 SQL — 非专用格式)导出的 SQL,那么该工具箱也可以从文件进行导入,请参阅图3。
图 3. 使用 ODBC 或 JDBC 访问数据库
将数据库部署到并非由 MTK 明确支持的系统平台是有可能的。在部署期间,MTK 执行一组批处理文件,其中包含用于部署的必要命令。如果您知道目标系统的 shell 命令语法,就可以自行将文件复制到系统、对它们作必要的修改并执行它们。例如,您可以手工修改并在本地运行迁移期间生成的 UNIX®(*.sh)脚本,这样就可以将部署和数据转移放在目标 UNIX 机器上进行,而不是安装了 MTK 的中间 Windows 机器。
图 4. 将批处理文件用于部署
下面描述了 MTK 界面的五个迭代的步骤:
步骤 1:指定源
在创建或打开了迁移项目之后,就可以启动迁移过程了。您的第一步是获取将要转换成 DB2 的 DDL 源文件。这一步在 Specify Source 页完成。
使用 ODBC 或 Java™ 连接,您可以直接从源数据库抽取源,或导入脚本。例如,当导入脚本时,您可以从先前的抽取或源库中导入源脚本。您也可以同时指定和转换多个源文件。
步骤 2: 转换
在转换步骤中,您可以从影响转换输出的一列格式化选项中进行选择。转换步骤也可以用来更改源数据类型及其目标 DB2 数据类型之间的缺省映射。
在从转换选项中进行选择之后,源 DDL 语句被转换成了 DB2 DDL。每次转换的结果都是一个 DB2 文件(.db2)和一个报告文件(.rpt),每个文件都包含您在 Prefix for generated files域指定的前缀。DB2 文件包含转换期间创建的 DB2 DDL 语句,通常在这些语句前加上源 DDL 语句作为注释。报告文件包含在转换期间标识的一列错误。您可以在 Refine页上查看和编辑这些文件,该页在对象被转换之后自动打开。
图 6. 步骤 2,转换
步骤 3:细化
细化步骤用来查看转换结果,定位错误消息和对已转换的 DDL 进行更改。
图 7. 步骤 3,细化
在细化了已转换的数据之后,您必须返回到转换步骤来应用更改。当您再次执行转换步骤时,转换器将细化的更改与最初抽取的源 DDL 语句合并,以产生更新的目标 DB2 和 XML 元数据(由 DDL 指定的源对象表示)。最初的 DDL 语句没有被更改。重复 转换-细化步骤,直到您对结果满意为止。
您可以使用其它工具(如 SQL Translator、Log 和 Reports)来帮助自己细化转换。在将 DB2 DDL 语句细化到您满意的程度后,可以继续转到生成数据转换脚本步骤来准备数据转换脚本,或转到 部署到DB2步骤以执行 DB2 DDL 语句。
步骤 4:生成数据转换脚本
在本步骤中,生成了 Windows NT(*.bat)和 UNIX(*.sh)数据转换脚本,可将其用于创建 DB2 格式的数据文件。有几个选项允许您指定装入和导入、文件格式、文件类型修饰符、参数以及用来满足您的特定迁移需求的创建索引选项。
图 8. 步骤 4,生成脚本
步骤 5:部署到 DB2
部署步骤用来选择将数据部署到目标 DB2 数据库的方法。在这个步骤中,您可以执行 DDL 来创建元数据对象、从源数据库抽取数据、将数据装入目标 DB2 表或选择这三个选项的任意组合
MTK 提供了这些不同的选项来适应众多可能的系统环境。这些特性的一个通用方法是使用 Deploy 选项,这样您就可以在白天执行 DDL 语句,而在网络使用率较低的夜晚部署实际数据。
如果您需要在与 DB2 所驻留的系统不同的系统上转换和细化,那么您可以将 MTK 及其项目目录复制到 DB2 系统并在本地部署它。如果您熟悉非 Windows 2000 操作系统上的 DB2,那么,在那些系统上修改批处理文件以适应到那些系统上 DB2 的部署是有可能的。MTK 生成用于 UNIX 和 Windows 平台的脚本。虽然这种情形仍没有被充分测试和支持,但可以通过复制 mtk.jar 文件和部署期间用的批处理文件来完成。因为使用了 .jar 文件,所以 Java 1.3.0 仍然是启动系统的先决条件。