close

其實每天都有再玩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這三個關鍵字去查詢
還不少東西呢

arrow
arrow
    全站熱搜
    創作者介紹
    創作者 kulo 的頭像
    kulo

    庫洛的異想世界

    kulo 發表在 痞客邦 留言(1) 人氣()