首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> DB2 資料庫 >> DB2 教學

使用 db2dback.ksh 自動化歸檔與維護 DB2 診斷日誌

     編輯:DB2 教學

背景與挑戰

隨著 DB2 自治功能普及,實例產生大量診斷文件(db2diag.log、管理通知日誌、事件日誌、FODC 目錄等),特別在多分區數據倉庫環境中佔用巨大磁盤空間。直接刪除不可行,因支持人員常需歷史診斷數據排查問題或遷移後分析。

解決方案:db2dback.ksh 腳本

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 歸檔(而非直接移動文件)

歸檔邏輯 (-a)

  • 重命名 db2diag.log 為 db2diag.log.,管理日誌同理,並創建新日誌文件。
  • 移動 DIAGPATH 下所有文件/目錄,排除:新建日誌、stmmlog 目錄(STMM 自管理,通常 <50MB)、15 分鐘內創建的診斷文件/FODC 目錄(防止活躍轉儾文件分散)。
  • 保留原目錄結構,歸檔至子目錄 db2dback..YYYY-MM-DD-hhmmss。
  • -t 選項:創建同名 .tar 歸檔並刪除源文件(同樣排除規則)。
  • -z 選項:壓縮文件(>200KB)或最終 tar 包。
  • -p 選項:DPF 環境下並行歸檔所有物理分區(插入 ||& 前綴)。

維護舊歸檔 (-r)

db2dback.ksh -r 180          # 單獨刪除 180 天前歸檔
db2dback.ksh -a -r 180       # 先歸檔再清理
db2dback.ksh -r 0            # 刪除所有歸檔(保留腳本自身日誌)

日誌文件

每物理分區獨立日誌 db2dback..log 存放於歸檔目標目錄,僅保留最近一次調用記錄,防止日誌膨脹。示例:

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 工具箱必備自動化腳本。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved