此文章主要讲述的是把应用程序轻松地从 Oracle 数据库迁移到 DB2 V9.7数据库的实际操作过程,本文主要是提供一个简单强大的实际应用工具,可以把应用程序从 Oracle 迁移到 IBM® DB2® Version 9.7 for Linux®, UNIX®, and Windows® 上。
还可以使用这个工具把数据从其他数据库管理系统转移到 DB2 for Linux, UNIX, and Windows 和 DB2 for z/OS®。
简介
从 DB2 V9.7 for Linux, UNIX, and Windows 开始,不再需要通过 Migration Toolkit (MTK) 在 DB2 产品上使用 Oracle 应用程序。Data Movement Tool 替代了 MTK 功能并显著简化了工作流。
对于所有其他场景,例如把数据从数据库转移到 DB2 for z/OS,这个工具在高速数据转移方面尤其出色。曾经使用这个工具在三天内转移了 4TB 数据。
GUI 为新手提供容易使用的界面,而高级用户往往更喜欢命令行 API。
准备
下载
首先,从 下载 中把这个工具下载到您的目标 DB2 服务器。把数据转移到 DB2 for z/OS 需要执行额外步骤。
安装
下载 IBMDataMovementTool.zip 文件之后,把文件解压到目标 DB2 服务器上的 IBMDataMovementTool 目录。为了实现***的数据转移性能,强烈建议进行服务器端安装(在 DB2 上)。
前提条件
如果希望在 DB2 for Linux, UNIX, and Windows 上运行 Oracle 应用程序,应该在目标服务器上安装 DB2 V9.7。
在目标服务器上必须安装 Java™ version 1.5 或更高版本。可以通过运行 java -version 命令检查当前的 Java 版本。在默认情况下,Java 安装在 DB2 for Linux, UNIX, and Windows 中的 <install_dir>\SQLLIB\java\jdk (Windows) 或 /opt/ibm/db2/V9.7/java/jdk (Linux) 中。
查明源数据库和 DB2 的 JDBC 驱动程序的位置。
数据库 JDBC 驱动程序
- Oracle ojdbc14.jar、xdb.jar、xmlparserv2.jar 或 classes12.jar(对于 Oracle 7 或 8i,是 classes111.jar)
- SQL Server sqljdbc.jar
- Sybase jconn3.jar
- MySQL mysql-connector-java-5.0.8-bin.jar
- PostgreSQL postgresql-8.1-405.jdbc3.jar
- Ingres iijdbc.jar
- DB2 for Linux, UNIX, and Windows db2jcc.jar、db2jcc_license_cu.jar
- DB2 for z db2jcc.jar、db2jcc_license_cisuz.jar
- MS Access 可选的 Access_JDBC30.jar
环境设置
UNIX:作为 DB2 实例所有者登录服务器。
Windows:启动 DB2 命令窗口。
切换到 IBMDataMovementTool 目录。这个工具包括一个 JAR 文件和两个驱动程序脚本。
IBMDataMovementTool.cmd - 在 Windows 上运行此工具的命令脚本。
IBMDataMovementTool.sh - 在 UNIX 上运行此工具的命令脚本。
IBMDataMovementTool.jar - 此工具的 JAR 文件。
创建 DB2 目标数据库
运行此工具需要连接目标数据库,所以必须首先创建这个数据库。在 DB2 V9.7 上,建议使用默认的自动存储并选择 32KB 页面大小。在 DB2 V9.7 上启用应用程序时,实例和数据库必须处于兼容模式。还建议调整舍入行为以匹配 Oracle。通过把重新验证语义(revalidation semantics)设置为 deferred_force,可以不按依赖次序部署对象。
在 UNIX 系统上 $ db2set DB2_COMPATIBILITY_VECTOR=ORA
- $ db2set DB2_DEFERRED_PREPARE_SEMANTICS=YES
- $ db2stop force
- $ db2start
- $ db2 "create db testdb automatic storage yes on /db2data1,
- /db2data2,/db2data3 DBPATH ON /db2system PAGESIZE 32 K"
- $ db2 update db cfg for testdb using auto_reval deferred_enforce
- $ db2 update db cfg for testdb using decflt_rounding round_half_up
- 在 Windows 系统上 C:\> db2set DB2_COMPATIBILITY_VECTOR=ORA
- C:\> db2set DB2_DEFERRED_PREPARE_SEMANTICS=YES
- C:\> db2stop force
- C:\> db2start
- C:\> db2 "create db testdb automatic storage yes on C:,D: DBPATH ON E: PAGESIZE 32 K"
- C:\> db2 update db cfg for testdb using auto_reval deferred_enforce
- C:\> db2 update db cfg for testdb using decflt_rounding round_half_up
提取对象和数据
在运行此工具之前,应该准备好源数据库和 DB2 服务器的以下信息:
源数据库和 DB2 服务器的 IP 地址或主机名
要连接的端口号
需要的数据库名、SID、子系统名等等
在源数据库上有 DBA 特权的用户 ID
此用户的密码
源数据库和 DB2 JDBC 驱动程序的位置
将存储数据的空间或卷/挂载点信息
在 Windows 上运行 IBMDataMovementTool.cmd,或在 UNIX 上运行 ./IBMDataMovementTool.sh。如果服务器能够显示图形,此工具会启动一个 GUI。否则,它会切换到交互式命令行模式。
在 Windows 上:
- IBMDataMovementTool.cmd
在 UNIX 上:
- ./IBMDataMovementTool.sh
现在会看到一个 GUI 窗口。shell 窗口中还应该出现一些消息。在开始使用 GUI 之前,请看一下这些消息,确认没有错误。
如果没有设置 DB2_COMPATIBILITY_VECTOR,此工具会报告一个警告。请按以下步骤设置兼容向量(如果还没有这么做的话)。
- [2009-05-15 12.48.59.218] INPUT Directory = .
- [2009-05-15 12.48.59.218] Configuration file loaded: 'jdbcdriver.properties'
- [2009-05-15 12.48.59.218] Configuration file loaded: 'IBMExtract.properties'
- [2009-05-15 12.48.59.218] appJar : 'C:\Vikram\Prospects\DB2Cobra\IBMDataMovementTool.jar'
- [2009-05-15 12.49.01.000] * WARNING *. I did not detect DB2_COMPATIBILITY_VECTOR set for
- compatibility mode.
- [2009-05-15 12.49.01.000] To set compatibility mode, discontinue this program and
- run the following commands
- [2009-05-15 12.49.01.000] db2set DB2_COMPATIBILITY_VECTOR=ORA
- [2009-05-15 12.49.01.000] db2stop force
以上的相关内容就是对把应用程序轻松地从 Oracle 迁移到 DB2 V9.7的介绍。
【编辑推荐】