使用 IBM Data Studio 管理資料庫最佳實踐2

請首先確保您的資料庫伺服器啟動了 SSH 服務,再次重做以上步驟,那麼您將會看到如下的對話框彈出讓您選擇表數據要導出的路徑。

圖 5. 在資料庫伺服器上選擇導出表數據的路徑

選擇連接資料庫的實例用戶 db2inst3 的用戶目錄下的 exportdata 目錄,點擊 OK. 再在導出嚮導的 File Name 文本框中輸入導出的文件名為 mytb02_exportdata,保持其它設置為預設值。點擊導出表數據嚮導中的鏈接 Preview Command, 您將看到為導出操作產生的 DDL,請參考圖 6

圖 6. 預覽生成的表數據導出 DDL

4. 在上圖中點擊按鈕 Run, 你將會在 Data Studio SQL Results 視圖中看到在執行導出的語句時有以下 Warning 產生:

 SQL3104N The Export utility is beginning to export data to file 
"/home/db2inst3/exportdata/mytb02_exportdata".
SQL3001C An I/O error (reason = "sqlofopn -2079391743") occurred 
while opening the output file. 
 SQL3105N The Export utility has finished exporting "0" rows.

從結果看出,產生輸入輸出錯誤,沒有一行數據導出,請參考圖 7

圖 7. 導出時的 I/O 錯誤

此時用戶應該注意: Data Studio 是採用 ADMIN_CMD 的用戶功能函數 UDF 來執行導出操作,而這個 UDF 是用 DB2 的防護用戶 (Fenced User) DB2 的地址空間外執行。所以我們應該確保指定一個 DB2 防護用戶有寫許可權的導出路徑。本例中 DB2 的防護用戶 db2fenc3 對實例用戶 db2inst3 的用戶目錄 /home/db2inst3 沒有寫許可權,所以導出失敗。

5. 在伺服器所在的機器上創建一個 DB2 防護用戶有權讀寫的目錄 /userdata,然後在 DataStudio 的表數據導出嚮導上選擇此目錄為表數據導出目錄,
再執行此導出操作,DDL 就可以成功執行,請參考圖 8

圖 8. 導出數據成功

實例一操作總結:

1. Data Studio 客戶端和資料庫伺服器需要通信時,確保資料庫端啟用了 SSH 服務,Data Studio 客戶端採用 SSH 和數據伺服器端通信。

2. DataStudio 採用 ADMIN_CMD 的功能函數導出表數據,此功能函數使用防護用戶執行,我們需要確保 DB2 防護用戶對指定的導出路徑有寫許可權。本人建議最好實例用戶和防護用戶都對數據導出目錄有寫許可權。

實例二:在不同的 schema 下遷移資料庫對象

本實例將實現將一個 DB2V9.7 資料庫某個 Schema 下的資料庫對象和相關聯的對象全部遷移到另一個 DB2V9.7 資料庫下的某個 Schema 下。

環境介紹:

1. 源資料庫 SAMPLE 位於 Linux 機器 A, 包含一個名為 SOURCESCHEMA schema SOURRCESCHEMA 下有一些表,其中有些表包含索引,並且用到了各自指定的表空間,不同的表空間又指定了不同的緩衝池。
2.
目標資料庫 TEST 位於 Linux 機器 B,包含一個名為 TARGETSCHEMA schema TARGETSCHEMA 下沒有任何錶。

操作目的:

把資料庫 SAMPLE SOURCESCHEMA 下的表和相關聯的資料庫對象遷移到資料庫 TEST TARGETSCHEMA 下。

操作步驟:

1. 為資料庫 SAMPLE TEST 創建兩個資料庫連接。
資料庫 SAMPLE 下的 SOURCESCHEMA 下包含的表如下圖。在這裡告訴大家一個小技巧,在 Schema 的列表編輯視圖中雙擊一個 Schema 可以顯示這個 Schema 下的所有表,請參考圖 9

圖 9. 源 Schema 下的所有表

以下文章點擊率最高

Loading…

     

如果這文章對你有幫助,請掃左上角微信支付-支付寶,給於打賞,以助博客運營