啟用 LOGRETAIN=ON (或 LOGARCHMETH1=USEREXIT) 後,日志文件生命週期:
db2 CONNECT TO SAMPLE
db2 UPDATE DB CFG USING LOGARCHMETH1 USEREXIT
db2 CONNECT RESET
sqllib/samples/c/):
db2uext2.cdisk (磁盤複製)、db2uext2.ctape (磁帶)、db2uext2.ctsm (TSM)、db2uext2.cxbsa (XBSA/AIX)db2uext2.cdisk、db2uext2.ctsmcdisk 為例):
#define ARCHIVE_PATH "D:\\DB2ARCHIVE\\" // 歸檔目標目錄
#define RETRIEVE_PATH "D:\\DB2ARCHIVE\\" // 取回臨時目錄
#define AUDIT_ERROR_PATH "D:\\DB2ARCHIVE\\AUDIT\\" // 錯誤審計日志
要求:目錄存在、實例用戶讀寫權限、獨立文件系統 (避免影響活動日志)。
# UNIX
xlc -o db2uext2 db2uext2.cdisk.c
cp db2uext2 $INSTHOME/sqllib/bin/
# Windows
cl db2uext2.cdisk.c
copy db2uext2.exe %DB2PATH%\bin\
db2 ARCHIVE LOG FOR DB SAMPLE USER DB2ADMIN USING PASSWORD
-- 檢查 ARCHIVE_PATH 下生成 S000xxxx.LOG 文件
| 維度 | 建議 |
|---|---|
| 文件系統 | 獨立於活動日志、數據、備份,推薦 XFS/EXT4/JFS2,預留 200% 峰值日志量空間 |
| 命名規範 | 保留 DB2 原始名 (Sdb2adutl / db2ckrst 識別 |
| 清理策略 | 配合備份保留期:db2prune logfile prior to Sxxxxx.LOG 定期清理 |
| 監控告警 | 腳本監控歸檔目錄磁盤使用率 >80% 告警,歸檔滯後 >30 分鐘告警 |
# 活動日志路徑
db2 GET DB CFG FOR SAMPLE | grep "Path to log files"
# 手工複製聯機歸檔日志 (非活動)
cp /db2log/SAMPLE/NODE0000/S0001234.LOG /archive/DB2ARCHIVE/
# 記錄操作日志供審計