您好,登錄后才能下訂單哦!
ROLLFORWARD DATABASE 命令允許每次指定多個操作,各個操作由關鍵字 AND 隔開。例如,要前滾至日志末尾,然后完成,可將下列獨立的命令:
db2 rollforward db sample to end of logs db2 rollforward db sample complete
組合為:
db2 rollforward db sample to end of logs and complete
雖然這兩種方法是等效的,但建議您分兩個步驟來完成此類操作。在停止前滾操作前驗證它是否具有預期的進度,以免丟失任何日志,這一點很重要。
如果前滾命令遇到錯誤,前滾操作就無法完成。在此情況下,將返回該錯誤,這樣,您就能夠修正該錯誤并重新發出以上命令。但是,如果無法修正該錯誤,那么可以通過發出以下命令強制前滾完成:
db2 rollforward db sample complete
此命令使數據庫聯機并復原到發生故障前日志點。
將數據庫前滾至日志末尾(已復原了兩個表空間):
db2 rollforward db sample to end of logs db2 rollforward db sample to end of logs and stop
這兩個語句是等效的。不需要 AND STOP 或 AND COMPLETE 表空間就可以前滾恢復至日志末尾。不需要表空間名稱。如果未指定,將包括所有需要前滾恢復的表空間。如果將只前滾這些表空間的一個子集,那么必須指定它們的名稱。
復原了 3 個表空間后,將其中一個前滾至日志末尾,另兩個前滾到某時間點,所有操作都要聯機執行:
db2 rollforward db sample to end of logs tablespace(TBS1) online db2 rollforward db sample to 1998-04-03-14.21.56 and stop tablespace(TBS2, TBS3) online
應注意,兩個前滾操作不能并發運行。只有在成功地完成了第一個前滾操作后,才能調用第二個命令。
復原數據庫后,前滾到某時間點,使用 OVERFLOW LOG PATH 來指定用戶出口用來保存已歸檔日志的目錄:
db2 rollforward db sample to 1998-04-03-14.21.56 and stop overflow log path (/logs)
在以下示例中,有一個稱為 sample 的數據庫。備份該數據庫,在備份映像中包含恢復日志;復原該數據庫;然后,將該數據庫前滾到備份時間戳記末尾。
備份該數據庫,在備份映像中包含恢復日志:
db2 backup db sample online include logs
使用備份映像復原該數據庫:
db2 restore db sample
將該數據庫前滾到備份時間戳記末尾:
db2 rollforward db sample to end of backup
有三個數據庫分區:0、1 和 2。在所有數據庫分區上定義表空間 TBS1,在數據庫分區 0 和 2 上定義表空間 TBS2。在數據庫分區 1 上復原了數據庫,并在數據庫分區 0 和 2 上復原了 TBS1 之后,在數據庫分區 1 上前滾數據庫:
db2 rollforward db sample to end of logs and stop
這會返回警告 SQL1271(已恢復數據庫,但數據庫分區 0 和 2 上的一個或多個表空間處于脫機狀態)。
db2 rollforward db sample to end of logs
此命令在數據庫分區 0 和 2 上前滾 TBS1。在此情況下,子句 TABLESPACE(TBS1) 是可選的。
在以下示例中,有一個稱為 sample 的分區數據庫。使用單系統視圖備份備份所有數據庫分區;在所有數據庫分區上復原該數據庫;將該數據庫前滾到備份時間戳記末尾。
執行單系統視圖 (SSV) 備份:
db2 backup db sample on all nodes online include logs
在所有數據庫分區上復原該數據庫:
db2_all "db2 restore db sample taken at 1998-04-03-14.21.56"
將該數據庫前滾到備份時間戳記末尾:
db2 rollforward db sample to end of backup on all nodes
在以下示例中,有一個稱為 sample 的分區數據庫。使用 db2_all,通過一個命令備份所有數據庫分區;在所有數據庫分區上復原該數據庫;并將該數據庫前滾到備份時間戳記末尾。
使用 db2_all,通過一個命令備份所有數據庫分區:
db2_all "db2 backup db sample include logs to /shared/dir/"
在所有數據庫分區上復原該數據庫:
db2_all "db2 restore db sample from /shared/dir/"
將該數據庫前滾到備份時間戳記末尾:
db2 rollforward db sample to end of backup on all nodes
只在數據庫分區 0 和 2 上復原表空間 TBS1 之后,在數據庫分區 0 和 2 上前滾 TBS1:
db2 rollforward db sample to end of logs
忽略數據庫分區 1。
db2 rollforward db sample to end of logs tablespace(TBS1)
此命令失敗,因為 TBS1 未對在數據庫分區 1 上進行前滾恢復作好準備。報告 SQL4906N。
db2 rollforward db sample to end of logs on dbpartitionnums (0, 2) tablespace(TBS1)
成功完成。
db2 rollforward db sample to 1998-04-03-14.21.56 and stop tablespace(TBS1)
此命令失敗,因為 TBS1 未對在數據庫分區 1 上進行前滾恢復做好準備;必須將所有段一起前滾。
注: 在將表空間前滾到某時間點之后,將不接受 dbpartitionnum 子句。前滾操作必須在表空間所在的所有數據庫分區上進行。
在數據庫分區 1 上復原 TBS1 后:
db2 rollforward db sample to 1998-04-03-14.21.56 and stop tablespace(TBS1)
成功完成。
在所有數據庫分區上復原表空間后前滾至 PIT2,但不指定 AND STOP。前滾操作仍在進行中。取消并前滾至 PIT1:
db2 rollforward db sample to pit2 tablespace(TBS1) db2 rollforward db sample cancel tablespace(TBS1) ** restore TBS1 on all dbpartitionnums ** db2 rollforward db sample to pit1 tablespace(TBS1) db2 rollforward db sample stop tablespace(TBS1)
前滾恢復 db2nodes.cfg 文件中列示的 8 個數據庫分區(3 至 10)上的表空間:
db2 rollforward database dwtest to end of logs tablespace (tssprodt)
前滾恢復至日志末尾(而不是時間點)的操作成功完成。不必指定表空間所在的數據庫分區。實用程序缺省到 db2nodes.cfg 文件。
前滾恢復單一數據庫分區數據庫分區組(在數據庫分區 6 上)上的 6 個小表空間:
db2 rollforward database dwtest to end of logs on dbpartitionnum (6) tablespace(tsstore, tssbuyer, tsstime, tsswhse, tsslscat, tssvendor)
前滾恢復至日志末尾(而不是時間點)的操作成功完成。
使用表空間 tbsp1、tbsp2 和 tbsp3 創建了分區表,索引在 tbsp0 中。后來,用戶對 tbsp4 中的表添加了數據分區,并從 tbsp5 中的表連接了數據分區。可以將所有表空間前滾至日志末尾。
db2 rollforward db PBARDB to END OF LOGS and stop tablespace(tbsp0, tbsp1, tbsp2, tbsp3, tbsp4, tbsp5)
成功完成。
最初使用表空間 tbsp1、tbsp2 和 tbsp3 創建了分區表,索引在 tbsp0 中。后來,用戶對 tbsp4 中的表添加了數據分區,并從 tbsp5 中的表連接了數據分區。表空間 tbsp4 損壞并要求復原和前滾至日志末尾。
db2 rollforward db PBARDB to END OF LOGS and stop tablespace(tbsp4)
成功完成。
使用表空間 tbsp1、tbsp2 和 tbsp3 創建了分區表,索引在 tbsp0 中。后來,用戶對 tbsp4 中的表添加了數據分區,從 tbsp5 中的表連接了數據分區,并從 tbsp1 拆離了數據分區。用戶對分區表使用的所有表空間(包括 INDEX IN 子句中指定的那些表空間)執行前滾到 PIT 操作。
db2 rollforward db PBARDB to 2005-08-05-05.58.53 and stop tablespace(tbsp0, tbsp1, tbsp2, tbsp3, tbsp4, tbsp5)
成功完成。
使用三個表空間(tbsp1、tbsp2 和 tbsp3)創建了分區表。后來,用戶從 tbsp3 中拆離了所有數據分區。只允許在 tbsp1 和 tbsp2 上前滾到 PIT。
db2 rollforward db PBARDB to 2005-08-05-06.02.42 and stop tablespace( tbsp1, tbsp2)
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。