Backup

DB2 ARCHIVE 模式 - 執行 FULL OFFLINE 備份後是否可以刪除所有歸檔日誌?

  • December 11, 2020

如果我理解正確,我對一件事感興趣。DB2 處於存檔模式(進行線上備份並且存檔日誌不斷出現,這沒問題)。

如果我今天進行了離線完整備份,並且我知道我不需要返回前幾天等,我可以自由刪除所有存檔日誌嗎?如果要恢復今天的備份,我想我不會收到一些錯誤“S000013.log is missing”或類似的東西?

我認為應該沒問題,但我想與專家核實一下?

有兩種方法可以確定要保留哪些日誌。一個你自己寫的。您需要發出db2 list history backup all for <db name>. 這將向您顯示歷史文件並找到最後一個備份和最後需要的存檔日誌。在此之前的任何內容都可以刪除。

現在您可以添加自動化。

db2 update db cfg using AUTO_DEL_REC_OBJ ON為您連接的數據庫設置第一步。現在,這將允許您使用歷史文件來修剪不需要的備份和存檔日誌。您仍然必須使用花哨的腳本和文本解析,但您可以做到。(您可能還可以在 DB2 中找到一個表來獲取數據。這可能更容易獲取數據。)但是您可以發出db2 prune history <timestamp> [with force option] and delete刪除不需要的備份。並db2 prune logfile prior to <log file name>刪除不需要的歸檔日誌。

這很好,但為什麼不讓 DB2 為您全程處理呢?為有問題的數據庫設置db2 update db cfg using AUTO_DEL_REC_OBJ ON。然後就可以設置了db2 update db cfg using NUM_DB_BACKUPS <number>。這設置了您希望在REC_HIS_RETENTN幾天內保留的最大備份數。現在設置db2 update db cfg REC_HIS_RETENTN <number>為天數。如果設置NUM_DB_BACKUPS3REC_HIS_RETENTN2它將保留 3 個備份 2 天。換句話說,備份需要至少兩天前才能考慮刪除。一旦備份超過 2 天,它將檢查是否有超過 3 個備份。如果這是真的,那麼它將刪除較舊的備份。

現在是日誌……只要您設置LOGARCHMETH1DISK而不是LOGRETAIN,DB2 也會清理所有不再需要的歸檔日誌。它將在每個保存的備份之間保留存檔日誌,但會刪除其他所有內容。範例設置:db2 update db cfg using LOGARCHMETH1 'DISK:/archive/logs'. 如果您設置為LOGRETAIN,那麼 DB2 將不會自動清理日誌,您需要自己進行清理。

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