本文為您介紹了DB2數據庫從AIX系統遷移到LINUX的詳細方法進行介紹,對在AIX系統上的操作和在Linux上的操作進行了分別說明,供您參考。
假設我們有一個IBM DB2數據庫,這個數據庫裡有很多表(可能上百張甚至更多),又有很多索引、外鍵約束、觸發器。最要命的是還有一些含有自增字段的表(含有GENERATED ALWAYS AS IDENTITY定義的字段的表)。我們也沒有關於這些數據庫對象的准確創建腳本(筆者經常碰到客戶有這種情況)。
現在我們要把這個數據庫遷移到不同的操作系統(比如從AIX到Linux),我們應該怎麼辦呢?因為操作系統不同,所以使用BACKUP/RESTORE命令顯然是不行了。那麼是不是可以使用db2move命令呢?也不行,首先db2move命令沒有辦法遷移索引、外鍵約束、觸發器,更不能遷移含自增字段數據的表。那麼對每張表都進行export/import操作?天哪,這簡直是一場災難,幾百張表要做到什麼時候啊,更何況import命令並不能保證自增字段的數據和原來一模一樣!下面筆者提供一種方案,感覺還是比較奏效的
假設數據庫名為sample,運行在AIX上,我們的目標是遷移到Linux上。為簡單起見,所有數據庫對象都在DB2INST1模式下,db2inst1用戶擁有必須的所有權限,密碼也是db2inst1
(一)AIX系統上的操作:
1) 首先我們用db2look命令得到數據庫對象的DDL腳本:
db2look -d SAMPLE -z DB2INST1 -e -o sample.ddl -i db2inst1 -w db2inst1
2) 使用文本編輯器編輯生成的sample.ddl,將創建表及索引的腳本語句,創建外鍵約束的語句,創建觸發器的語句分開,制作成三個DDL腳本,分別是
sample_tabs.ddl
sample_forIEgnkeys.ddl
sample_triggers.ddl