export.sql:
db2 "select 'export to ' || rtrim(tabname) || '.ixf of ixf select * from ' || rtrim(tabname) || ';'
from syscat.tables where tabschema = 'DB2INST1'" > export.sqlexport.sql,移除頭尾雜訊,保留純導出命令。load.sql(必須用 LOAD 命令):
db2 "select 'load from ' || rtrim(tabname) || '.ixf of ixf insert into ' || rtrim(tabname) || ';'
from syscat.tables where tabschema = 'DB2INST1'" > load.sqlload.sql,移除頭尾雜訊。檢索 sample_tabs.ddl 中含自增列(GENERATED ALWAYS AS IDENTITY)的表,在對應 load 命令中 of ixf 與 insert 間加入 modified by identityoverride,例如:
load from MYTABLE.ixf of ixf modified by identityoverride insert into MYTABLE;
此選項保證導入時自增列值與源庫一致。db2 -tvf export.sql。將 sample_tabs.ddl、sample_foreignkeys.ddl、sample_triggers.ddl、load.sql 及所有 .ixf 數據文件複製至 Linux 目標機器。
sample_tabs.ddl 創建表(db2 -tvf sample_tabs.ddl)。.ixf 文件目錄,執行 db2 -tvf load.sql 導入數據。sample_foreignkeys.ddl 與 sample_triggers.ddl 創建外鍵與觸發器。runstats 更新統計信息(可按生成 export/load 腳本方法批量生成 runstats 腳本執行)。至此,數據庫遷移基本成功完成。