DB2備份與恢復

chenoracle發表於2020-02-24

DB2 備份與恢復

整理下16年寫的DB2相關文件,換工作以後一直沒用過DB2,忘的差不多了。

一 db2 backup/restore 備份和恢復

1.1 備份

db2 backup/restore 備份與恢復只適用於相同作業系統平臺的資料庫;

命令格式: db2 backup db < 資料庫名 > to < 目錄名 >

注:在備份前需斷開所有與資料庫的連線 , 斷開連線後再備份 目錄名是備份後的檔案的存放目錄.

:

db2 backup database sample to d:\backup

如果資料庫正在被使用,可能回報錯 SQL1035N  

The database is currently in use.  SQLSTATE=57019 ”需要停掉服務,用命令:

db2 force application all

db2 backup db sample  to d:\ backup

1.2恢復

命令格式: db2 restore db < 資料庫名 > from < 目錄名 >

: db2 restore db sample  from d:\ backup

--- 刪除原有的 sample 資料庫 ( 模擬資料庫恢復 )

恢復資料庫sample

db2 restore db sample from D:\DB2\backup

檢視資料庫

二:db2move 備份和恢復

2.1 備份

1) 首先連線到要匯出的資料庫上,如本例匯出資料庫 nctest

db2 connect to nctest user db2inst1 using db2inst1

其中的引數user 後面跟指定使用者, using 後面指定使用者的密碼,不指定時會使用預設使用者進行登入;

2) 使用 db2look 匯出資料物件的定義語句

  db2look  d nctest  o ncdb.sql  –i  db2inst1  w d b2inst1

  命令中的引數 o 意思是將資料物件的定義匯出到指定的檔案中;

其中的引數-i 後面跟指定使用者, -w 後面指定使用者的密碼,不指定時會使用預設使用者進行登入;

  3)  使用db2move 命令匯出資料庫物件的資料

  db2move nctest export  u db2inst1  p db2inst1

連線資料庫sample

透過db2look 匯出 sample 資料庫建立物件的指令碼 sample.sql

db2look -d sample -e -o sample.sql -i 使用者名稱 -w 使用者密碼

匯出資料

db2move sample export -u 使用者名稱 -p 使用者密碼

sample.sql: 建立資料物件的指令碼;

export.out: 資料庫匯出日誌;

db2move.lst: 包括匯出的物件名稱和各個物件所屬的模式;

--- 如果匯出時報錯 SQL3107W ,需要更改環境變數的字符集

2.2 恢復

SAMPLE 資料庫資料匯入到 test 資料庫中

db2 create database test

透過db2move 恢復 NC 資料庫時,可以根據建庫指令碼 1.sql ,先進行建立資料庫和表空間等操作;

db2 connect to test user 使用者名稱 using 使用者密碼

a.sql---create_table.sql

b.sql---create_foreign.sql

修改sample.sql 指令碼,將指令碼中資料庫名稱,表空間名稱更改為實際的名稱;

sample.sql 指令碼中建立外來鍵的語句剪下到另一個指令碼中 (create_foreign.sql);

如果匯入資料時,在沒有匯入主表資料之前,匯入對應外來鍵表資料時會出現錯誤,所以需要在成功匯入外資料後,在進行外來鍵的建立;

建立表結構

db2 -tvf a.sql

...

匯入資料

db2 test import -io insert -u 使用者名稱 -p 使用者密碼

匯入外來鍵約束

db2 -tvf b.sql

檢視資料

.....

歡迎關注我的微信公眾號"IT小Chen",共同學習,共同成長!!!

DB2備份與恢復

DB2備份與恢復



來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29785807/viewspace-2677043/,如需轉載,請註明出處,否則將追究法律責任。

相關文章