本文基于我們的成功實踐,總結(jié)出如何使用 IBM Data Movement Tool 實現(xiàn)從 SQL Server/Oracle 到 DB2 的表數(shù)據(jù)遷移,并針對表數(shù)據(jù)遷移過程中遇到的常見問題,給出相應(yīng)的解決方案。
sql server,oracle 及 db2 都是目前市場上很多應(yīng)用程序所使用的關(guān)系型,隨著應(yīng)用程序功能的日趨強大,應(yīng)用程序的版本升級和重新安裝都將要求保留原有數(shù)據(jù)。這樣不同類型之間的遷移成了現(xiàn)在應(yīng)用程序功能中數(shù)據(jù)遷移部分的重點。目前市場上出現(xiàn)了一些數(shù)據(jù)庫遷移工具(比如:ibm data movement tool)。互聯(lián)網(wǎng)上針對這些工具的介紹大部分都是基于數(shù)據(jù)對象的整體遷移,也就是在數(shù)據(jù)結(jié)構(gòu)遷移的基礎(chǔ)上進行數(shù)據(jù)遷移。但是有些應(yīng)用程序并不需要數(shù)據(jù)結(jié)構(gòu)的遷移,而是僅僅需要表數(shù)據(jù)的遷移。比如 ibm spss 的一款產(chǎn)品 collaboration and deployment services (簡稱:cads。cads 是一個可以廣泛使用和部署的企業(yè)級平臺,它可以集成 ibm spss 的其它預測分析產(chǎn)品比如 ibm spss modeler,ibm spss statistics 或者 ibm spss data collection,從而向用戶提供完整的商業(yè)解決方案。), 它支持 sql server, oracle, db2 等多種數(shù)據(jù)庫。在安裝 cads 的時候,安裝程序會自動創(chuàng)建數(shù)據(jù)庫對象,包括表結(jié)構(gòu),視圖,函數(shù),存儲過程等。在安裝和使用 cads 的時候,會對表數(shù)據(jù)進行增、刪、改、查的操作。對此款產(chǎn)品考慮跨數(shù)據(jù)庫類型遷移數(shù)據(jù)時,最初的遷移步驟為:創(chuàng)建源數(shù)據(jù)庫 -> 安裝源 cads -> 產(chǎn)生源數(shù)據(jù) -> 創(chuàng)建目標數(shù)據(jù)庫 -> 用第三方數(shù)據(jù)遷移工具從源數(shù)據(jù)庫向目標數(shù)據(jù)庫遷移數(shù)據(jù) -> 安裝目標 cads 。由于在安裝目標 cads 服務(wù)器的時候,會自動重建視圖,函數(shù),存儲過程等除表數(shù)據(jù)之外的其他對象,所以其他對象不需要使用第三方數(shù)據(jù)遷移工具進行遷移。而對于表結(jié)構(gòu),使用第三方遷移工具生成的目標表結(jié)構(gòu)和通過安裝目標 cads 服務(wù)器所創(chuàng)建的表結(jié)構(gòu)差異很大(主要是數(shù)據(jù)類型的差異),因此,如果在用第三方遷移工具遷移表結(jié)構(gòu)及表數(shù)據(jù)后安裝目標服務(wù)器,將很難保證目標服務(wù)器對數(shù)據(jù)類型的正確處理。所帶來的問題隱患也是不可估量的。所以,為了減少數(shù)據(jù)遷移帶來的隱患,cads 決定采用第三方遷移工具僅僅遷移表數(shù)據(jù)。這樣,cads 的跨數(shù)據(jù)庫類型的遷移步驟就變?yōu)椋簞?chuàng)建源數(shù)據(jù)庫 -> 安裝源 cads 數(shù)據(jù)庫 -> 產(chǎn)生源數(shù)據(jù) -> 創(chuàng)建目標數(shù)據(jù)庫 -> 安裝目標 cads 服務(wù)器 -> 使用第三方遷移工具僅僅遷移表數(shù)據(jù) -> 在遷移后的目標數(shù)據(jù)庫上重新部署 cads 服務(wù)器。對于 cads 來說,重新部署非常簡單,所以采取這種方案進行數(shù)據(jù)遷移,就可以避免數(shù)據(jù)類型帶來的問題隱患。
現(xiàn)在,很多應(yīng)用程序的架構(gòu)類似于 CADS,這就要求考慮如何使用第三方遷移工具僅僅實現(xiàn)表數(shù)據(jù)遷移。本文將基于我們的成功實踐,總結(jié)出如何使用 IBM Data Movement Tool 實現(xiàn)從 SQL Server/Oracle 到 DB2 的表數(shù)據(jù)遷移,并針對表數(shù)據(jù)遷移過程中遇到的常見問題,給出相應(yīng)的解決方案。
遷移工具簡單介紹及表數(shù)據(jù)遷移步驟詳細介紹
IBM Data Movement Tool 簡單介紹
此工具是一個非常簡單但是強大的工具,它支持從 MySQL、PostgreSQL、 Teradatra、SQL Server、Sybase、Oracle、 DB2、Access 等數(shù)據(jù)庫遷移到 DB2 數(shù)據(jù)庫。并且提供了圖形界面和命令行兩種方式,操作起來也很方便。
本文主要介紹如何利用 IBM Data Movement Tool 僅僅進行表數(shù)據(jù)的遷移。
用 IBM Data Movement Tool 進行從 SQL Server/Oracle 到 DB2 的表數(shù)據(jù)遷移步驟
使用 IBM Data Movement Tool(以下簡稱 IDMT)進行數(shù)據(jù)遷移有兩種方式:圖形界面方式和命令行方式。此章節(jié)就基于這兩種方式詳細介紹從 SQL Server/Oralce 到 DB2 9.7 LUW 的表數(shù)據(jù)遷移步驟。
在使用 IDMT 進行數(shù)據(jù)遷移之前,需要做一些準備工作,使 IDMT 可以連接源數(shù)據(jù)庫和目標數(shù)據(jù)庫。
基于圖形界面方式的數(shù)據(jù)遷移
步驟 1 — 連接源數(shù)據(jù)庫和目標數(shù)據(jù)庫
打開 IDMT 圖形界面,在“Extract/Deploy”頁面,在源數(shù)據(jù)庫(Source Database)和目標數(shù)據(jù)庫(Target Database)中填寫相應(yīng)的信息。需要注意的是:在 Migration 一行,僅僅需要選中“DDL”和“Data”兩個復選框。然后點擊“Connect to ORACLE”和“Connect to DB2”按鈕,以保證源數(shù)據(jù)庫和目標數(shù)據(jù)庫可以連接成功。請參考圖 1 。
圖 1 提取及加載數(shù)據(jù)對話框
步驟 2 — 設(shè)置參數(shù)
如果遷移的數(shù)據(jù)中,存在 Graphic 和 DBCLOB 類型的數(shù)據(jù),則在“Set Params”頁面,需要設(shè)置“Graphic”和“DBCLOB”為 true。然后點擊“Save Params”按鈕。請參考圖 2 。
圖 2 參數(shù)設(shè)置對話框