其實每天都有再玩DB2....
想到很久沒更新了....
就來說說DB2的還原好了
聽說DB2備份在上一年很久以前說過(遠目....)
以下所有指令為在linux底下文字介面輸入的方法
最簡單的指令就是
#db2 restore db dbname
此語法下法,備份檔必須在當下目錄且只有一個
但是不見得每次都有用(因為那是本機還原相關資料庫的語法)
如果要知道完整資料庫還原指令怎下
可以輸入
#db2 ? restore
觀看相關參數順序與語法(同理可以下db2 ? backup)
如果資料庫備份檔有很多個,可以多下一個taken at的參數
#db2 restore db dbname taken at 日期時間
日期時間為備份檔後面所加的時間 EX:20090326162200
比較複雜的用法為假如我要restore另一個database或是原本的檔案系統毀損,要進行還原
這時候就要多下一些參數RESTORE DATABASE REDIRECT
#db2 restore db 原本的dbname into 新的dbname redirect WITHOUT ROLLING FORWARD WITHOUT PROMPTING
如果是重建就不需要加into這參數
WITHOUT PROMPTING是先不要開始還原動作(因為還沒配置檔案系統或是路徑)
根據db2 database的tablespace配置重新定向
可以利用下面兩個指令查詢原本tablespace的配置
這邊可分成DMS跟SMS的做法,簡單說DMS要先建檔案系統、SMS要先建PATH
以下為SMS的做法
#db2 list tablespaces show detail
#db2 list tablespace containers for 0 show detail
重新指向PATH,如果從B主機要還原A主機的資料庫,他會不知道PATH的配置,所以要加這些動作
#db2 "set tablespace containers for 0 using (path '新給的PATH')"
以上的動作可能有5到數個不等的PATH
一一配置好再下達開始還原的指令
#db2 restore db 原本的dbname continue
這樣就開始跑還原啦
這用法比較實用的部分在於萬一db 毀損
我們可以在本機重新還原一個備份檔(改資料庫名稱),前提是OS及其他東西無異常的狀況下
其實根據版主的工作經驗
DB2會於重開機後進行自我recovery的動作
功能還蠻強大的!!!幾乎都可以自己修復CRASH的狀況
最長的有自己修復6HRS的情況
如果對於版主寫的有不清楚的地方
可以用db2 restore redirect這三個關鍵字去查詢
還不少東西呢