DB2 ARCHIVE 模式 - 執行 FULL OFFLINE 備份後是否可以刪除所有歸檔日誌?
如果我理解正確,我對一件事感興趣。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_BACKUPS
為3
和REC_HIS_RETENTN
,2
它將保留 3 個備份 2 天。換句話說,備份需要至少兩天前才能考慮刪除。一旦備份超過 2 天,它將檢查是否有超過 3 個備份。如果這是真的,那麼它將刪除較舊的備份。現在是日誌……只要您設置
LOGARCHMETH1
為DISK
而不是LOGRETAIN
,DB2 也會清理所有不再需要的歸檔日誌。它將在每個保存的備份之間保留存檔日誌,但會刪除其他所有內容。範例設置:db2 update db cfg using LOGARCHMETH1 'DISK:/archive/logs'
. 如果您設置為LOGRETAIN
,那麼 DB2 將不會自動清理日誌,您需要自己進行清理。