我工作時碰到了乙個需要把乙個老的db2資料庫給拆分,並資料也得移植,我首先想到的是將資料庫進行備份,並重定向恢復成另乙個資料庫,但是嘗試了多次也為成功,於是就只能想想最簡單的方法了export匯出import匯入。
一、[root@localhost ~]# su - db2inst1
在當前使用者目錄下建立backup目錄
[db2inst1@localhost ~]$ mkdir backup
[db2inst1@localhost ~]$ cd backup/
[db2inst1@localhost ~]$ pwd
/home/db2inst1
[db2inst1@localhost ~]$ db2 connect to db_name
匯出資料結構
[db2inst1@localhost ~]$ db2look -d db_name -a -e -o /home/db2inst1/backup/script.sql
二、建立乙個新資料庫
[db2inst1@localhost ~]$ db2 create database newdatabase on '/home/db2inst1' using codeset utf-8 territory cn
將script.sql檔案取到桌面
將script.sql檔案上方連線資料庫改為newdatabase
將script.sql檔案最下方與外來鍵相關的sql單獨摘出來另存foreign.sql資料夾中
-- ddl statements for foreign keys on table "db2inst1"."role_privilege_info"
alter table "db2inst1"."role_privilege_info"
add constraint "f_reference_15" foreign key
("privilege_id")
references "db2inst1"."privilege_info"
("privilege_id")
on delete restrict
on update restrict
enforced
enable query optimization;
-- ddl statements for foreign keys on table "db2inst1"."role_privilege_info"
alter table "db2inst1"."role_privilege_info"
add constraint "f_reference_15" foreign key
("privilege_id")
references "db2inst1"."privilege_info"
("privilege_id")
on delete restrict
on update restrict
enforced
enable query optimization;
......
使用dbvis連線工具連線newdatabas資料庫執行script.sql指令碼中的sql
三、匯出資料
[db2inst1@localhost backup]$ mkdir data
匯出需要的表的資料
[db2inst1@localhost backup]$ db2 "export to /home/db2inst1/backup/data/tab1.ixf of ixf lobs to /home/db2inst1/backup/data/ lobfile lobs modified by lobsinsepfiles messages /home/db2inst1/backup/data/tab1.msg select * from db2inst1.config_info"
[db2inst1@localhost backup]$ db2 "export to /home/db2inst1/backup/data/tab2.ixf of ixf lobs to /home/db2inst1/backup/data/ lobfile lobs modified by lobsinsepfiles messages /home/db2inst1/backup/data/tab2.msg select * from db2inst1.dict_info"
.....
四、匯入表資料
[db2inst1@localhost ~]$ db2 connect to newdatabase
匯入對應的表的表資料
[db2inst1@localhost backup]$ db2 "import from /home/db2inst1/backup/data/tab1.ixf of ixf messages /home/db2inst1/backup/data/tab1.msg insert into db2inst1.config_info"
[db2inst1@localhost backup]$ db2 "import from /home/db2inst1/backup/data/tab2.ixf of ixf messages /home/db2inst1/backup/data/tab2.msg insert into db2inst1.dict_info"
.....
五、資料導完後執行外來鍵的sql
使用dbvis連線工具連線newdatabas資料庫執行foreign.sql指令碼中的sql
另外:用db2move匯出所有表的資料 db2move db_name export -u user_name -p password
執行sql指令碼 db2 -tvf d:\script.sql -z d:\script.log
用db2move匯入所有表的資料 db2move db_name import -io replace -u user_name -p password
DB2管理非預設 db2 例項
檢視db2所有例項 c documents and settings administrator db2ilist db2c documents and settings administrator db2 get instance 當前資料庫管理器例項是 db2 建立新例項 c documents...
關於DB2的使用(DB2資料命令)
公司所用的資料庫有金倉和db2 首先要用命令視窗直接開啟db2需要在cmd中輸入 db2cmd 1 啟動db2資料庫 db2start 2 連線資料庫 db2 connect to 資料庫名稱 3 建立資料庫 db2 create db 資料庫名稱 4 刪除資料庫 db2 drop db 資料庫名稱...
DB2中db2命令引數說明
db2中db2命令引數說明 a 顯示 sqlca off c 自動落實 on d 檢索並顯示 xml 宣告 off e 顯示 sqlcode sqlstate off f 讀取輸入檔案 off i 顯示 xml 資料並帶有縮排 off l 將命令記錄到歷史記錄檔案中 off m 顯示受影響的行數 o...