日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

IBM DB2跨平臺數據庫遷移步驟和注意事項

瀏覽:304日期:2023-11-08 17:54:57
這篇論壇文章主要介紹了IBM DB2跨平臺數據庫遷移的具體步驟和注意事項,更多內容請參考下文。

db2是個有著廣泛商業應用的關系數據庫軟件。作為一個數據庫管理員時常面臨著數據庫系統的遷移工作,這是一個復雜而艱巨的過程。互聯網和 db2 的幫助文檔中有許多關于 db2 數據庫遷移的介紹,但是對于 db2 數據庫的跨平臺遷移卻很少談及。本文將基于筆者的成功實踐,總結一下跨平臺數據庫遷移的步驟和注意事項。

簡介

設想您是一個 db2 商業數據庫系統的管理員。您被給予一項任務,支持業務開發和測試團隊對商業系統的持續開發,為他們創建一套獨立于產品環境的數據庫系統,從而不影響日常的商業運作。由于種種原因,這套開發和測試數據庫系統將運行在一個不同于產品環境的操作系統。我們知道 db2 提供了一些方便的數據庫管理工具,比如數據庫的整體備份和恢復功能,用戶可以用它很方便的將一個 db2 數據庫從一臺物理節點遷移到另一個物理節點,但是 db2 的備份和恢復功能目前只支持同構操作系統平臺間的遷移,比如從 windows 平臺到 windows 平臺,AIX 平臺到 AIX 平臺。對于上述任務要求的跨平臺的數據庫遷移,就沒有一個專門的工具可以很方便的實現。

遷移步驟

經過筆者的實踐,總結 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. 檢查源數據庫系統對象,明確要遷移哪些數據庫系統對象

如何檢查源數據庫系統對象?一個最直觀的方法就是使用DB2控制中心(db2cc)瀏覽查看表,視圖,觸發器,用戶定義的函數,存儲過程等數據庫對象。尤其要注意有無大的表,比如一行數據的表定義可能大于8K的表。 這樣的表需要在目標數據庫上建立具有足夠頁大小的表空間。下面的步驟中將會給出列子。還需要注意的是有無外部定義的存儲過程,這些存儲過程所關聯的外部程序包需要手工重新關聯。

3. 導出源數據庫系統的數據集

db2 提供了一個工具叫作 db2move,用戶通過它可以把所有用戶定義的表中的數據導出到 IXF(集成交換格式)的文件中。同時,在導入數據的時候,它還可以生成表上的所定義的索引。具體的導出執行命令如下:

清單 6. 導出源數據集

以下是引用片段:

db2move dbname

export -u

username

-p

password

根據數據庫大小,機器性能的不同,這個導出過程可能耗時幾分鐘到幾個小時不等。在筆者的經歷中,這個導出過程就長達 2 個多小時。

4. 生成源數據庫系統的數據對象定義語句

在導出了數據之后,要做的就是導出數據對象定義。DB2提供了一個工具叫db2look,用戶可以通過它來生成數據庫中的數據對象定義,包括別名,表,索引,視圖,觸發器,用戶定義函數,存儲過程等。具體的命令如下:

清單 7. 生成數據對象定義語句

以下是引用片段:

db2look -d dbname

-e -o

ddlfile

-i

username

-w

password

如果數據庫非常復雜,包含很多的數據對象定義,那么在執行上述命令前,用戶有可能要先調整參數appgroup_memo_sz,才能夠順利的生成數據對象定義文件。下面是筆者修改這個參數的命令示例:

清單 8. 調整源數據庫參數

以下是引用片段:

db2 update db cfg for dbname using appgroup_mem_sz 51368

5. 在目標平臺創建新的數據庫,參照源系統設置參數

在源平臺上完成了數據導出和數據對象定義語句生成之后,下面就是要在目標平臺建立目標數據庫了。參考源數據庫的設置為新創建的數據庫配置適當的參數,通常需要調整的參數有:

dbheap - 數據堆大小

catalogcache_sz - 目錄高速緩存大小

logbufsz - 日志緩沖區大小

util_heap_sz - 實用程序堆大小

buffpage - 緩沖池大小

sortheap - 排序列表堆

stmtheap - sql 語句堆

applheapsz - 缺省應用程序堆

筆者使用的調整語句如下:

清單 9. 調整語句

以下是引用片段:

db2 update db cfg for dbname using dbheap 41599

db2 update db cfg for dbname using catalogcache_sz 38049

db2 update db cfg for dbname using logbufsz 256

db2 update db cfg for dbname using util_heap_sz 20000

db2 update db cfg for dbname using buffpage 1000

db2 update db cfg for dbname using sortheap 4096

db2 update db cfg for dbname using stmtheap 16384

db2 update db cfg for dbname using applheapsz 10242

對于非常復雜的數據庫,目標數據庫的日志參數還需要做出調整,以便在導入數據和生成數據對象時,系統不至于日志溢出。由于筆者要遷移的數據庫比較復雜,所以使用了較大的日志配置,命令示例如下:

清單 10. 命令示例

db2 update db cfg for dbname using logfilsiz 8192

db2 update db cfg for dbname using mincommit 1

db2 update db cfg for dbname using logprimary 24

db2 update db cfg for dbname using logsecond 108

6. 導入源數據集

細心的讀者可能會發現,這里總結的步驟6和8看似不太符合一般的邏輯順序。對于數據庫系統,通常都是先生成數據系統對象,如表,視圖,觸發器等,然后再導入數據集。而上述步驟中卻是先導入數據集,然后再生成數據對象定義。 這能行的通嗎?對于DB2來說,這完全行得通,因為db2move命令在導入數據集時,會自動生成表和索引。這樣的順序對于復雜數據對象定義的數據庫遷移是唯一可行的順序,因為復雜數據庫中往往包含諸多復雜的數據約束語句, 它們會造成數據集導入時的種種問題。

清單 11. 導入源數據集的命令示例

以下是引用片段:

db2move targetdbname

import -u

username

-p

password

如果數據量非常大,這個過程將會非常耗時。

7. 檢查數據集導入過程日志,排除可能的錯誤。

導入完成后,你需要檢查導入過程日志,查看有無錯誤發生。如果有錯誤,你需要找出解決方法,然后從步驟 5 重新開始。

8. 在目標系統執行數據系統對象定義語句

修改步驟 4 生成的 ddl 語句文件,去除文件前端的數據庫連接語句,保存后執行如下命令:

清單12. 命令示例

以下是引用片段:

db2 connect to targetdbname

user

username

using

password

db2 -tvf ddlfile > createSchema.log

db2 connect reset

9.檢查數據對象生成日志,排除可能的錯誤

通常你會發現有很多創建表的語句執行失敗的記錄,不要緊張,這是正常的,因為前面的步驟中已經生成了所有的用戶表。所以檢查的焦點應該放在其他數據庫對象(如視圖和觸發器等)的生成語句上。 如果數據庫非常復雜,可能需要非常細致的檢查日志,以確保所有數據對象都正確創建。

10. 執行后期檢查

通常,用戶可能碰到兩種需要處理的情況。其一,如果數據庫系統中有用 Java 編寫的存儲過程,那么需要注冊存儲過程的外部程序包。命令示例如下:

清單 13. 命令示例

以下是引用片段:

db2 call sqlj.install_jar ('jar_url','jar_id')

db2 drop procedure procedurename

db2 create procedure procedurename

external name '

jar_id:

classname' language java parameter style DB2GENERAL FENCED modifies sql data

db2 grant execute on procedure procedurename to public

其二,如果表定義中有數據庫管理的自動增長列,比如表定義語句含有 'GENERATED BY DEFAULT AS IDENTITY'。那么你需要更新這些列的起始計數。命令示例如下:

清單 14. 命令示例

以下是引用片段:

db2 alter table

tabname

alter column

colname

restart with

newstartnumber

這個 newstartnumber 的多少是要根據目前表中該列的最大值來定的,具體公式是 newstartnumber = currentmaxnumber + 1。

11. 配置應用程序,連接數據庫,測試遷移是否成功。

上述就是完整的 db2 跨平臺數據庫遷移步驟,筆者使用的 db2 版本是 8.2。無論如何,數據庫遷移是個復雜的問題,其中難免有些情況筆者未曾遇到,歡迎有過類似經驗的高手指教和共同討論。

標簽: DB2 數據庫
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
999国产精品| 群体交乱之放荡娇妻一区二区| 国产不卡一区| 激情综合五月| 日韩成人精品一区| 国产精品videossex久久发布| 青青草91视频| 国产免费久久| 精品视频国内| 福利一区二区| 欧美日韩一二三四| 亚洲激情五月| 日韩精品一区二区三区中文在线 | 天堂а√在线最新版中文在线| 国产日本亚洲| 国产aⅴ精品一区二区四区| 丝袜诱惑一区二区| 91精品99| 综合五月婷婷| 久久精品国产久精国产爱| www成人在线视频| 首页国产欧美日韩丝袜| 精品国产欧美| 亚洲乱码视频| 石原莉奈在线亚洲二区| 国产一区丝袜| 国内激情久久| 欧美综合社区国产| 国产成人精选| 蜜桃一区二区三区在线| 捆绑调教美女网站视频一区| 伊人精品一区| 国产九一精品| 亚洲欧洲午夜| 国产不卡精品| 日本电影久久久| 色爱综合av| 国产欧美日韩一级| 日韩午夜精品| 91亚洲一区| 91伊人久久| 视频一区二区欧美| 日韩精品永久网址| 97成人超碰| 一区二区三区四区精品视频| 国产一区二区三区四区五区传媒| 免费观看日韩电影| 91精品久久久久久久久久不卡| 国产日韩1区| 亚洲精品观看| 99日韩精品| 天堂8中文在线最新版在线| 国产精品乱战久久久| 亚洲精品婷婷| 国产精品二区不卡| 国产一区国产二区国产三区| 欧美日韩亚洲一区二区三区在线| 亚洲精华国产欧美| 亚洲性色视频| 欧美a级片一区| 亚洲国内欧美| 欧美天堂亚洲电影院在线观看| 欧美日韩精品免费观看视完整| 另类欧美日韩国产在线| 久久中文字幕一区二区| 精品国产亚洲日本| 福利一区视频| 久久一区二区三区喷水| 久久激情一区| 久久亚洲欧美| 国产亚洲久久| 成人午夜网址| 亚洲福利专区| 在线视频精品| 丝袜美腿亚洲一区| 国产日韩欧美| 成人午夜精品| 国产精品嫩草99av在线| 免费久久99精品国产| 亚洲精品亚洲人成在线观看| 国产午夜精品一区在线观看| 麻豆91在线播放| 免费精品国产| 日韩成人午夜精品| 国产精品成人a在线观看| 久久精品青草| 免费观看在线综合色| 免费一级欧美片在线观看网站| 亚洲国产福利| 欧美日韩国产传媒| 国产伦久视频在线观看| 黄色av日韩| 久久av国产紧身裤| 亚洲精品极品少妇16p| 日韩综合一区二区三区| 国产精品二区不卡| 午夜日韩福利| 欧美在线看片| 欧美粗暴jizz性欧美20| 国产精品嫩模av在线| 在线日韩电影| 精品久久免费| 日韩三区四区| 99精品99| 欧美www视频在线观看| 日本亚洲欧美天堂免费| 亚洲二区视频| 色综合狠狠操| 久久久久黄色| 久久精品xxxxx| 免费看日韩精品| 91久久久精品国产| 91日韩在线| 国产+成+人+亚洲欧洲在线| 亚洲欧美日本国产| 亚洲欧美日韩国产| 久久久久网站| 福利一区二区三区视频在线观看| 日本v片在线高清不卡在线观看| 日韩精品诱惑一区?区三区| 国产精品nxnn| 国产精品久av福利在线观看| 国产偷自视频区视频一区二区| 日韩一区欧美| 四虎4545www国产精品 | bbw在线视频| 国产在线一区不卡| 国产精品成人a在线观看| 精品国产三区在线| 蜜桃精品视频| 97精品一区| 麻豆成人91精品二区三区| 国产精品v亚洲精品v日韩精品| 国产亚洲一区二区三区不卡| 国产精品一站二站| 国产欧美日韩精品一区二区免费| 欧美一区91| 精品中文字幕一区二区三区| 久久精品欧洲| 精精国产xxxx视频在线野外 | 91精品麻豆| 免费精品一区| 日本久久成人网| 蜜桃久久久久久久| 国产精品久久亚洲不卡| 欧美天堂一区二区| 日韩av免费大片| 女人天堂亚洲aⅴ在线观看| 亚洲欧美日本国产专区一区| 欧美一区二区三区免费看| 欧美国产另类| 狠狠爱www人成狠狠爱综合网| 综合亚洲视频| 国产精品成人a在线观看| 国产韩日影视精品| 国产欧美日韩在线一区二区| 免费观看亚洲| 日本欧美一区| 99精品一区| 国产麻豆一区二区三区精品视频| 国产精品主播在线观看| 久久中文视频| 国产精品一区二区99| 久久精品导航| 久久av国产紧身裤| 视频一区国产视频| 日韩免费在线| 欧美亚洲综合视频| 日韩午夜精品| 日韩在线视频精品| 国产美女久久| 亚洲性视频在线| 999国产精品| 国产日韩电影| 麻豆一区在线| 亚洲午夜久久| 日韩午夜av在线| 99久久亚洲精品蜜臀| 国产一区二区三区网| 国产女人18毛片水真多18精品| 香蕉视频成人在线观看| 99视频精品全部免费在线视频| 精品久久影院| 欧美国产视频| 欧美中文一区| 日本麻豆一区二区三区视频| 午夜国产精品视频免费体验区| 91精品一区二区三区综合在线爱 | 精品三级久久| 国产66精品| 激情不卡一区二区三区视频在线| 91福利精品在线观看| 色综合视频一区二区三区日韩| 国产精品www994| 国产91在线播放精品| 精品不卡一区| 国产一区二区久久久久| 97精品国产| 亚洲午夜在线| 麻豆亚洲精品|