測試環境應用變慢,AWR 報告顯示:
log file switch (checkpoint incomplete) 等待 350 次,總耗時 11,300 秒,平均 32 秒/次,佔 DB Time 26.2%。log file switch (checkpoint incomplete) 含義:LGWR 需要切換到下一組 Redo Log 文件寫入,但該組文件尚未完成 Checkpoint(即該組文件包含的脏塊尚未全部刷盤),LGWR 必須等待 CKPT 完成刷盤才能覆寫。
本質是 Redo 生成速度 > Checkpoint 刷盤速度,典型「寫入風暴」信號。
Statistic: log switches (derived) Total: 23 per Hour: 46.78
關鍵指標:物理塊變更量。AWR 顯示 MV_CONTRACT_INFO 物化視圖刷新導致 70,211,408 塊變更,換算約 535 GB Redo(理論最大值,實際略小但同樣驚人)。
某開發人員在業務高峰期手動執行 DBMS_MVIEW.REFRESH('MV_CONTRACT_INFO'),全量刷新大量數據,產生海量 Redo,沖垮 Checkpoint 能力。
ALTER SYSTEM CHECKPOINT 強制推進检查点(會加劇 IO 尖峰,慎用)。FAST REFRESH ON COMMIT 或定時增量刷新(需物化視圖日志支持)。fast_start_mttr_target=300(目標 5 分鐘恢復),平滑刷盤節奏。LOG_CHECKPOINT_INTERVAL/LOG_CHECKPOINT_TIMEOUT 輔助控制。log switches per hour > 20 觸發告警。通過 AWR 精準定位「物化視圖刷新」這一業務動作,而非單純調參數,體現了性能調優「找業務、看 SQL、查對象、改架構」的正確方法論。