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