DB2的db2look和db2move的使用

2021-08-07 08:36:48 字數 2951 閱讀 7221

我工作時碰到了乙個需要把乙個老的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...