什麼是日誌傳送?
日誌傳送是一種自動化機制:主 DB2 伺服器備份交易日誌,使備份自動對備用伺服器可用。備用伺服器套用日誌檔案,保持與主伺服器相對同步。這是以低成本實現熱備用、達到 99.99%(四個九)可用性的實用方案。
優勢與限制
主要優勢
- 無需昂貴軟硬體即可建立備援故障切換系統;主備硬體規格可異
- 備用伺服器平時可跑其他獨立資料庫,不閒置
- 配置成本低、維護簡單、高可靠度
- 資料庫處於前滾狀態,屬熱備用,啟動快、快取已暖機
- 可容忍極少量資料遺失(視日誌套用頻率)
- 支援本地與遠端災難恢復部署
已知限制
- 非全自動故障切換:需人工判斷啟用備用機時機,或撰寫腳本輔助
- 切換後用戶端應用需重新導向新伺服器(或漂移主機名/IP)
- 不提供 HACMP/Veritas Cluster 級完整功能,屬成本與可用性的權衡
操作關鍵考量
何時重新初始化備用資料庫
- 重建索引:主庫重建索引時寫入日誌記錄,備庫不自動重建。可設
INDEXREC 參數於接管或首次存取時重建,但會造成效能抖動。預防:從主庫備份重新填充備庫,或用 I/O 暫停+分離鏡像技術刷新。
- LOAD 工具:主庫執行 LOAD 影響備庫。若 LOAD 建立表空間備份,備庫須能存取目標裝置;否則表空間進入恢復暫掛狀態。建議 LOAD 完成後刷新備庫。
先決條件
- 主備系統運行相同 DB2 版本(可故障切換至較高修訂包安裝主機,但不可回退)
- 備用系統磁碟空間 ≥ 主系統(考慮主機可能數天不可用)
- 備用機配置主機所有自動化維護程序;若備機已有其他資料庫,實例應獨立
- 備用機日誌歸檔目標可存取;故障切換後需保留日誌以利主庫恢復
- 備用系統需完整資料庫備份初始化熱備用,加上備份後產生的所有日誌檔
實作架構:拉式與推式
所有配置皆基於使用者出口程序(db2uext),日誌滿時由 DB2 記錄器歸檔,再由出口程序處理。
- 拉式:備用伺服器按需從中央共享位置(如日誌歸檔目標)拉取日誌檔
- 推式:主伺服器歸檔時主動將日誌檔放置至備用伺服器
備用伺服器需排程定期執行 db2 rollforward db to end of logs,頻率決定故障切換後的可用速度。亦可故意延後數小時作為應用程式錯誤的「時光機」回退機制。
總結
日誌傳送以低成本、低複雜度提供實用的資料庫熱備用方案。雖不具備企業級叢集的全自動故障切換,但對可接受極少資料遺失、預算有限的客戶極具吸引力。成功關鍵在於嚴謹的先決條件檢查、合適的推/拉架構選擇、穩定的 Rollforward 排程,以及完善的故障切換演練腳本。