啟用 LOGRETAIN=ON 後,活動日誌不再循環覆寫,必須建立歸檔機制避免磁碟爆滿。IBM 強烈建議使用 User Exit 程式 自動化 Archive/Retrieve,本文以 Windows 平台為例完整說明部署步驟。
CONNECT TO SAMPLE;
UPDATE DB CFG USING LOGARCHMETH1 USEREXIT;
CONNECT RESET;
DB2 提供四種 UNIX 版與兩種 Windows 版範例(sqllib/samples/c):
db2uext2.ctsm:Tivoli Storage Managerdb2uext2.cdisk:OS Copy + 磁碟(最常用)db2uext2.ctape:磁帶db2uxt2.cxbsa:XBSA 介面(僅 AIX)#define ARCHIVE_PATH "C:\\MYLOGS\\"
#define RETRIEVE_PATH "C:\\MYLOGS\\"
#define AUDIT_ERROR_PATH "C:\\MYLOGS\\"
確保目標目錄已存在且 DB2 服務帳號具讀寫權限。
cl db2uext2.c
產生 db2uext2.exe。
COPY db2uext2.exe %DB2PATH%\BIN\
db2 "ARCHIVE LOG FOR DB SAMPLE USER DB2ADMIN USING PASSWORD"
檢查 C:\MYLOGS 是否出現歸檔檔案(如 S0000001.LOG),即代表部署成功。
RETRIEVE 功能:模擬前滾復原測試 User Exit 讀取邏輯。db2diag.log 中 USEREXIT 關鍵字,及早發現歸檔失敗。