5.處理資料庫表中的自增欄位
對於需要載入的含有自增欄位的表,即該表的 ixf 資料檔案中有自增列的值, 可以在 load 命令中加入如下參數控制自增欄位值:
1). modified by identityignore :載入的資料檔案中有自增欄位值,load 時忽略資料檔案中自增欄位值 ;
2). modified by identitymissing :載入的資料檔案中沒有自增欄位值,load 時自動產生自增欄位值 ;
3). modified by identityoverride :載入的資料檔案中有自增欄位值,load 時使用資料檔案中的自增欄位值 。
為了使目標資料庫中含有自增欄位的表中資料與來源資料庫中的資料保持一致,本文執行個體中選擇使用 modified by identityoverride 參數,在匯入資料時使用資料檔案中的自增欄位值。讀者可以根據不同情況選擇適當的控制參數。
首先,在 srcdb1_tables.ddl 檔案中尋找所有包自增欄位的表名 ( 含有 GENERATED ALWAYS AS IDENTITY 欄位的表 ),然後在 srcdb1_load.sql 中將 modified by identityoverride 語句片段插入到這些含有自增欄位的表所對應的 load 命令列中。
清單8. load 指令碼中自增欄位處理
db2 load from test.ixf of ixf modified by identityoverride insert into TEST;
6.執行匯出指令碼
執行匯出指令碼,匯出所有表的資料 。
# db2 -tvf srcdb1_export.sql
匯出的表資料以 ixf 格式存放於當前路徑下。
7.儲存指令碼和資料檔案
將所有 DDL 指令碼以及資料檔案 *.ixf 複製到目標系統所在網站。
LINUX 系統上的操作
1.通過命令列處理器(CLP)建立執行個體 SRCDB1:
# db2icrt SRCDB1
2.使用 CREATE DATABASE 命令建立資料庫 SRCDB1,建立必要的資料表空間及配置必要的資料庫參數。
# db2 create database SRCDB1
3.串連到資料庫 SRCDB1,執行 srcdb1_tables.ddl 指令碼建立緩衝池,資料表空間,UDF,表以及 Index,Sequence,視圖等資料庫物件。
# db2 connect to srcdb1
# db2 -tvf srcdb1_tables.ddl