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