『壹』 DB2資料庫中db2stop的問題
db2stop 執行時如有連來接未斷開就會報源"SQL1025N 未停止資料庫,因為資料庫仍是活動的。"的提示,而不能執行。
最好的辦法是 執行DB2 force application all 斷開所有連接,之後再執行db2stop,這樣比較安全
但是要注意: DB2 force application all 是非同步的。
『貳』 如何驗證db2資料庫備份是否成功命令
一、備份(backup)資料庫
1、離線全備份
1)、首先確保沒有用戶使用DB2:
db2 list applications for db sample
2)、停掉資料庫並重新啟動,以便斷掉所有連接:
db2stop force
db2start
*若是不喜歡重啟的朋友可以使用[db2 force applications all]命令以結束正在利用的連接,該句執行完以後,繼續執行[db2 list applications for db sample],若還有連接殘留,則再運行[db2 force applications all]命令,直到沒有連接殘留.
3)、執行備份命令:(使用TSM作為備份的介質)
db2 backup db sample use tsm
備份成功,將會返回一個時間戳。
4)、檢查備份成功:
db2 list history backup all for sample 可以看到多了這個備份的紀錄。
db2atl query 命令也可以看到返回值。
5)、備註:
首先對主節點(catalog表空間在的節點)執行備份命令,再對另外的節點也做這個操作。
2、 在線備份:
1)、首先打開一下支持在線備份的資料庫配置參數:
db2 update db cfg for sample using userexit on 啟用用戶出口
db2 update db cfg for sample using logretain on 啟用歸檔日誌
db2 update db cfg for sample using trackmod on 啟用增量備份功能
(需要各個Node都分別做設置)
開啟這些參數後,資料庫處於backup pending狀態,要求做資料庫的離線全備份。 做一下離線全備份,參考上面的命令。
2)、在線備份命令如下:
db2 backup db sample online use tsm
備份成功,返回一個時間戳。
3)、同樣可以用db2atl 和db2 list history察看備份紀錄。
4)、備註:
同樣,對每個節點都做這個操作。
3、 在線增量備份
1)、在開啟了必須的三個參數的情況下,做增量備份:
db2 backup db sample online incremental use tsm
備份成功,返回一個時間戳。
2)、同樣可以用db2atl 和db2 list history察看備份紀錄。
3)、還有一種delta的備份:
db2 backup db sample online incremental delta use tsm
這兩種備份的區別,類似Oracle Exports的Incremental和Cumulative方式,db2的incremental對應oracle的cumulative方式,而 db2的delta方式則對應oracle的incremental方式。
4)、備註:
同樣,對每個節點都做這個操作。
二、恢復(RESTORE)資料庫
1、新建資料庫
在一般管理工具, 創建資料庫(別名要和原來的資料庫別名一致)。
2、恢復資料庫
1):斷開連接:將網路斷開,切斷所有的客戶連接,如果不行,先重啟。(如果有 客戶端連接到DB2伺服器,恢復不行的,包括控制中心)
2):恢復離線備份:
設:
你的備份那個DB2文件在:C:\Temp
你的資料庫名稱:DBName
那麼對應DB2的備份/恢復文件的格式是這樣的:
C:\Temp\DBName.0\DB2CTLSV\NODE0000\CATN0000\20090706\HHMMSS.001
備 份時你只是指定了一個C:\Temp目錄,後面那麼目錄為DB2備份時生成。
然後是它的文件名,一般格式是:HHMMSS.001,即:小時分鍾秒數.001,也就是說後面那個20020828是 備份日期,文件名是備份時間。
好,清楚後,你就可以寫SQL命令進行恢復了
運行: Start->Program->IBM DB2->Command Center
然後:不要登陸,直接輸入下列命令:
以下為引用的內容:
RESTORE DATABASE OldDBName FROM C:\\Temp\\ TAKEN AT
20020919094932 TO D: INTO NewDBName WITH 2 BUFFERS BUFFER 1024
WITHOUT PROMPTING
你要改
NewDBName ==》你的新建資料庫名稱
C:\\TEMP\\ ==> 你備份DB2的目錄,像上面所說
20020919094932 ==> 一看你DB2的目錄和文件組合成這東東
D: ==> 新建的資料庫放在哪個盤上
OldDBName ==> 備份前那個資料庫叫什麼
好了,CTRL+ENTER, 如果不行請檢查,如果再不行,請重啟,如果再不行,。。。阿門,上帝保佑你
3): 實例
備份文件路徑:C:\Temp\ipmdemo.0\DB2CTLSV\NODE0000\CATN0000\20090622\164642.001
其中,備份日期:20090622 備份文件:164642.001
新建資料庫名:ipmdemo
資料庫文件時間戳:20090622164642
恢復命令為:db2 restore database ipmdemo from C:\Temp taken at20090622164642
3、恢復在線備份
1)、恢復。恢復命令為:db2restoredatabase DBName from C:\Temp taken at20090622164642
2)、前滾。前滾命令為:db2 rollforward db DBName to end of logs(或 者:控制中心->所有資料庫->dbname ->右鍵->前滾)
3)、停止前滾。停止前滾命令為:db2 rollforward db DBName stop(或者:控制中心 ->所有資料庫->dbname ->右鍵->停止前滾)
三、有關說明
1、恢復操作也有online和offline的,區別如同backup的操作。
2、按照表空間的備份和恢復類似,加子句TABLESPACE ( tablespace-name )即可。表空間級別的備份/恢復操作要求資料庫處於歸檔日誌和啟用增量備份模式下。
3、恢復的例子中只做了版本恢復。若還有更新的全備份和增量備份的image,可以依次做恢復(注意使用db2ckrst的建議恢復次序和次數)後,再做 roll forward。
『叄』 DB2資料庫恢復有那幾種方法
DB2資料庫恢復的三種方法
1
應急恢復
應急恢復用於防止資料庫處於不一致或不可用狀態。資料庫執行的事務(也稱工作單元)可能被意外中斷,若在作為工作單位一部分的所有更改完成和提交之前發生故障,則該資料庫就會處於不一致和不可用的狀態。這時,需要將該資料庫轉化為一致和可用的狀態。為此,需要回滾未完成的事務,並完成當發生崩潰時仍在內存中的已提交事務。如在COMMIT語句之前發生了電源故障,則在下一次DB2重新啟動並再次訪問該資料庫時,需要回滾到執行COMMMIT語句前的狀態。回滾語句的順序與最初執行時的順序相反。
DB2資料庫恢復有那幾種方法?
2
版本恢復
版本恢復指的是使用備份操作期間創建的映象來復原資料庫的先前版本。這種恢復是通過使用一個以前建立的資料庫備份恢復出一個完整的資料庫。一個資料庫的備份允許你吧資料庫恢復至和這個資料庫在備份時完全一樣的狀態。而從備份建立後到日誌文件中最後記錄的所有工作事務單位將全部丟失。
3
前滾恢復
這種恢復技術是版本恢復的一個擴展,使用完整的資料庫備份和日誌相結合,可以使一個資料庫或者被選擇的表空間恢復到某個特定時間點。如果從備份時刻起到發生故障時的所有日誌文件都可以獲得的話,則可以恢復到日誌上涵蓋到的任意時間點。前滾恢復需要在配置中被明確激活才能生效。