Backup

執行“TO A POINT IN TIME”選項時出現 DB2 ROLLFORWARD 錯誤

  • March 4, 2015

我在 2015 年 3 月 3 日 19:20 執行了備份映像的恢復命令:

db2 restore database maxdb71 from "/data/archiveBackup" taken at 20150303192002 without prompting;

然後我嘗試將前滾到一個時間點(03.03.2015 21:05)所以這是在備份圖像之後:

db2 rollforward db maxdb71 to 2015-03-03-21.05.00.000000 using local time and complete;

但我收到錯誤:

SQL4970N  Roll-forward recovery on database "MAXDB71" cannot reach the 
specified stop point (end-of-log or point-in-time) on database partition(s) 
"0". Roll-forward recovery processing has halted on log file "S0000189.LOG".

所以喜歡它找不到日誌S0000189.LOG。但是此日誌存在於存檔日誌位置(C0000004 目前子文件夾用於存檔日誌)/data/archive/ctginst1/MAXDB71/NODE0000/C0000004>:

這些是一些存檔日誌文件的時間戳:

ctginst1 db2iadm1 15765504 2015-03-03 19:22 S0000187.LOG
ctginst1 db2iadm1 16785408 2015-03-03 21:52 S0000188.LOG
ctginst1 db2iadm1 16785408 2015-03-04 00:15 S0000189.LOG
ctginst1 db2iadm1 16785408 2015-03-04 02:32 S0000190.LOG

基本上日誌文件 S0000188.LOG 應該是包含 21.05 的事務的文件,對吧?

那麼,當我有必要的日誌時,為什麼我不能進行時間點的前滾呢?我真的對這個前滾選項感到困惑。

當我這樣做時db2 rollforward database maxdb71 to end of logs and complete; ,它是成功的,我得到了資訊:

Log files processed                    = S0000187.LOG - S0000188.LOG

如此to end of logs有效,但為什麼我要到某個特定時間點才能執行?

如果將日誌歸檔到與活動日誌目錄不同的位置(logpath數據庫配置參數),則需要指定子句overflow log path /path/to/archived/logs。該ROLLFORWARD命令不會自動執行此操作。

PS。你真的應該開始閱讀手冊——它們充滿了有用的東西,包括多個例子……

引用自:https://dba.stackexchange.com/questions/94349