隨著 DB2 自治功能普及,實例產生大量診斷文件(db2diag.log、管理通知日誌、事件日誌、FODC 目錄等),特別在多分區數據倉庫環境中佔用巨大磁盤空間。直接刪除不可行,因支持人員常需歷史診斷數據排查問題或遷移後分析。
db2dback.ksh 為 DB2 實例所有者提供的維護腳本,支持 AIX/Linux、單/多分區(DPF)、共享或獨立 DIAGPATH 配置。可手動或定時任務運行。
cp db2dback.ksh ~/sqllib/bin
chmod 755 ~/sqllib/bin/db2dback.ksh
需具備 DPF 環境遠程執行權限。
Usage: db2dback.ksh [-ahzvptl] [-o ] [-r ]
-h 顯示幫助
-a 歸檔診斷數據
-r 刪除超過天數的歸檔(可與 -a 組合)
-o 指定目標目錄(默認 DIAGPATH/db2dump_archive)
-z 壓縮歸檔(默認 gzip,回退 compress)
-v 詳細輸出
-p 多分區並行歸檔(默認串行)
-l 本地執行模式(共享 DIAGPATH 或單物理分區)
-t 生成 tar 歸檔(而非直接移動文件)
db2diag.log 為 db2diag.log.,管理日誌同理,並創建新日誌文件。DIAGPATH 下所有文件/目錄,排除:新建日誌、stmmlog 目錄(STMM 自管理,通常 <50MB)、15 分鐘內創建的診斷文件/FODC 目錄(防止活躍轉儾文件分散)。db2dback..YYYY-MM-DD-hhmmss 。-t 選項:創建同名 .tar 歸檔並刪除源文件(同樣排除規則)。-z 選項:壓縮文件(>200KB)或最終 tar 包。-p 選項:DPF 環境下並行歸檔所有物理分區(插入 ||& 前綴)。db2dback.ksh -r 180 # 單獨刪除 180 天前歸檔
db2dback.ksh -a -r 180 # 先歸檔再清理
db2dback.ksh -r 0 # 刪除所有歸檔(保留腳本自身日誌)
每物理分區獨立日誌 db2dback. 存放於歸檔目標目錄,僅保留最近一次調用記錄,防止日誌膨脹。示例:
02-05-2009 19:00:38: Option -r specifIEd
02-05-2009 19:00:38: Removing all archives older than 0 days
02-05-2009 19:00:38: Removing archive db2dback.p6db2serv.2009-02-05-190017
DIAGPATH/db2dump_archive 鏈接至獨立大容量文件系統(NFS 或本地),多分區非共享 DIAGPATH 時每分區均需創建鏈接。cron 定時運行(如每日歸檔、每月清理 180 天前歸檔)。-v 並重定向輸出以便審計。db2dback.ksh 以零成本解決 DB2 診斷數據生命周期管理難題,支持企業級高可用環境,是 DBA 工具箱必備自動化腳本。