此文章主要講述的是把應用程序輕松地從 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的介紹。