怎樣把DB2 V8數據庫系統遷移到DB2 V9下
在安裝好DB2舊版本的系統上安裝DB2 v9,需要把舊版本的所有的實例(Instance)和數據庫系統遷移到DB2 V9,移植DB2 V8數據庫系統,包括遷移實例(Instance),DB2管理服務器(DAS)和數據庫。對於 DB2 V8 的數據庫系統,可以直接遷移到 DB2 V9。對於 DB2 V6、V7 的產品需要首先遷移到 DB2 V8,然後再遷移到 DB2 V9。
在一台 Windows 系統的系統上,我們已經安裝了 DB2 ESE(Enterprise Server Edition) V8.2 數據庫系統。假定我們創建了一個 DB2 的實例。同時,我們在該實例下創建了一個數據庫 Sample。我們需要在該系統上安裝 DB2 V9,把 DB2 ESE V8.2 移植到 DB2 V9。數據庫管理員賬號為 db2admin,同時也具有系統管理員的權限。下面在上述的 Windows 平台上,開始我們的移植 DB2 ESE V8.2旅程。
遷移數據庫實例
有兩種方式可以遷移數據庫實例。一種是由數據庫安裝程序實現自動遷移,第二種方式是手工遷移數據庫。在 Windows 平台上,可以在安裝 DB2 V9 過程中選擇從 DB2 V8 移植到 DB2 V9。安裝結束後 DB2 V8 的實例就自動移植到 DB2 V9。
1. 自動遷移實例
以系統管理員身份登錄系統,如 db2admin;
運行 DB2 V9 的安裝程序 setup.exe;
在圖 1所示的“安裝產品”的面板上選擇“遷移”舊的數據庫系統;
在選擇安裝文件夾的面板上,我們可以看到安裝路徑被自動設為 DB2 ESE V8.2 的安裝路徑“c:Program FilesIBMSQLLIB”。我們不需要也不能選擇安裝文件夾。待安裝結束後,該目錄下原來安裝的 DB2 將被升級;
在遷移過程結束後可以運行 db2level 命令來驗證數據庫實例是否被成功的遷移。圖 2 是執行 db2level 命令的結果。我們可以看到原來的數據庫實例 DB2 已經被成功的遷移,其版本信息為“DB2 v9.1.0.356”;
遷移數據庫
完成上面的遷移 DB2 實例後,我們需要繼續遷移該實例下的數據庫。假設原來在該實例下,有個 Sample數據庫。
用具有 SYSADM 權限的該實例的用戶登錄系統,如 db2admin;
運行 db2 命令行工具,在該環境中執行遷移數據庫的命令:MIGRATE DATABASE database-alias USER username USING passWord。其中 database-alias 是將要遷移的數據庫的名字或者別名。Username 是具有 SYSADM 權限的用戶名來認證。在我們的例子中,假設 db2admin 的密碼是 passw0rd.那麼我們需要執行下面的命令來遷移 sample 數據庫:MIGRATE DATABASE sample USER db2adim USING passw0rd。
為驗證我們的數據庫被成功遷移到 DB2 V9,我們可以連接到數據庫 sample,並查詢其中的數據。我們試驗的結果如圖 4 所示。現在我們能夠成功的連接到數據庫 sample,並能夠查詢到其中的數據。
遷移 DB2 管理服務器
在遷移 DB2 數據庫系統中,我們也可以遷移原來的 DAS,或者先刪掉原來的 DAS,再創建新的 DAS。在安裝 DB2 服務器上,你只可以有一個 DAS。下面是遷移 DAS 的具體步驟。
用 DAS 管理員的賬號登錄,如 db2admin;
停止 DAS 服務器。我們可以用下面的命令:db2admin stop。
遷移原來的 DB2 V8 的 DAS 服務器,假設我們的 DB2 安裝在 C:Program FilesIBMSQLLIB 目錄下。我們運行下面的命令:
遷移 DAS 完成後,我們可以重新啟動 DAS 服務器:db2admin start。
常見錯誤及解決
遷移過程中最常見的錯誤是日志文件(log)文件不夠大。其錯誤消息如清單 1 所示。
清單 1. 日志錯誤消息
解決方法如下:
連接到想要遷移的數據庫:CONNECT TO sample;
使用 GET DATABASE CONFIGURATION 命令來決定目前日志文件空間大小。例如清單 2 中的設置:
清單 2. 日志文件空間大小設置
可以使用下面的命令來提高日志空間大小:UPDATE DB CFG FOR sample using current value * 2。例如,UPDATE DB CFG FOR sample using LOGPRIMARY 26,UPDATE DB CFG FOR sample using LOGSECOND 8。
另外一個常見的警告信息是 SQL1243W。遇到這種錯誤,你必須卸載或者重新命名 SYSTOOLS.DB2LOOK_INFO 表。可以使用下面的命令:db2 RENAME SYSTOOLS.DB2LOOK_INFO TO new-table-name。