以下的文章主要講述的是IBM DB2跨平台數據庫遷移的實際操作步驟與相關的注意事項,DB2數據庫是個有著廣泛商業應用的關系數據庫軟件。作為一個數據庫管理員時常面臨著數據庫系統的遷移工作,這是一個復雜而艱巨的過程。
互聯網和 DB2 的幫助文檔中有許多關於 DB2 數據庫遷移的介紹,但是對於 DB2 數據庫的跨平台遷移卻很少談及。本文將基於筆者的成功實踐,總結一下跨平台數據庫遷移的步驟和注意事項。
簡介
設想您是一個 DB2 商業數據庫系統的管理員。您被給予一項任務,支持業務開發和測試團隊對商業系統的持續開發,為他們創建一套獨立於產品環境的數據庫系統,從而不影響日常的商業運作。由於種種原因,這套開發和測試數據庫系統將運行在一個不同於產品環境的操作系統。
我們知道 DB2 提供了一些方便的數據庫管理工具,比如數據庫的整體備份和恢復功能,用戶可以用它很方便的將一個 DB2 數據庫從一台物理節點遷移到另一個物理節點,但是 DB2 的備份和恢復功能目前只支持同構操作系統IBM DB2跨平台數據庫遷移,比如從 windows 平台到 windows 平台,AIX 平台到 AIX 平台。對於上述任務要求的跨平台的數據庫遷移,就沒有一個專門的工具可以很方便的實現。
遷移步驟
經過筆者的實踐,總結 DB2 數據庫的跨平台遷移步驟如下:
記錄源數據庫管理系統配置參數,以備遷移過後數據庫系統性能調優;
檢查源數據庫系統對象,明確要遷移哪些數據庫系統對象;
導出源數據庫系統的數據集;
生成源數據庫系統的數據對象定義語句;
在目標平台創建新的數據庫,參照源系統進行設置;
導入源數據集;
檢查數據集導入過程日志,排除可能的錯誤;
執行數據對象定義語句;
檢查數據對象語句執行日志,排除可能的錯誤;
檢查更新存儲過程的定義;
連接應用系統,測試IBM DB2跨平台數據庫遷移是否成功。
下面給出一個遵循上述步驟的具體例子,其中將給出執行這些步驟的具體 DB2 命令以供參考。
1. 記錄源數據庫管理系統配置參數。這些是很重要的數據環境設置,其中的一些設置關系到遷移能否成功。
清單 1. 顯示數據庫管理系統配置參數的命令
以下是引用片段:
DB2 get dbm cfg
清單 2. 顯示數據庫配置參數的命令
以下是引用片段:
DB2 get db cfg for source_db_name
注意:Italic part should be replaced by your settings.
注意:對於比較復雜的源數據庫,要注意它的應用程序組內存大小參數(appgroup_memo_sz)。如果它的大小不夠,後面生成數據對象定義的時候會有問題。
清單3. 顯示數據庫注冊表變量的命令
以下是引用片段:
DB2set -all
清單 4. 顯示數據庫表空間的命令
以下是引用片段:
DB2 list tablespaces show detail
清單 5. 顯示數據庫程序包的命令
以下是引用片段:
DB2 list packages
上述顯示表空間和程序包的命令都需要先建立到源數據庫的連接。
2. 檢查源數據庫系統對象,明確要IBM DB2跨平台數據庫遷移哪些數據庫系統對象
如何檢查源數據庫系統對象?一個最直觀的方法就是使用DB2控制中心(DB2cc)浏覽查看表,視圖,觸發器,用戶定義的函數,存儲過程等數據庫對象。尤其要注意有無大的表,比如一行數據的表定義可能大於8K的表。 這樣的表需要在目標數據庫上建立具有足夠頁大小的表空間。下面的步驟中將會給出列子。還需要注意的是有無外部定義的存儲過程,這些存儲過程所關聯的外部程序包需要手工重新關聯。