| 維度 | Switchover (計畫性切換) | Failover (故障切換) |
|---|---|---|
| 觸發場景 | 維護升級、硬體遷移等計畫性操作 | 主庫 Crash、存儲故障、災難恢復 |
| 資料損失 | 零資料損失(所有 redo 已同步應用) | 可能損失未傳輸至 Standby 的 redo(視保護模式而定) |
| 原主庫角色 | 轉為 Standby,仍屬同一 Data Guard 體系 | 若啟用 Flashback Database,可轉為新主庫的 Standby |
| 業務影響 | 秒級切換,應用透明 | 需人工介入,RTO 取決於故障偵測與決策速度 |
V$DATAGUARD_STATS 確認 apply lag、transport lag 在可接受閾值內。-- 查看適用延遲、啟動預估時間等核心指標
COLUMN NAME FORMAT A18
COLUMN VALUE FORMAT A16
COLUMN TIME_COMPUTED FORMAT A24
SELECT * FROM V$DATAGUARD_STATS;
-- 確認資料庫角色與開放模式
SELECT NAME, DB_UNIQUE_NAME, OPEN_MODE, DATABASE_ROLE FROM V$DATABASE;
NAME VALUE TIME_COMPUTED
-------------------- ---------------- ------------------------
apply finish time +00 00:38:57.2 26-SEP-2008 23:16:39
apply lag +00 09:48:00 26-SEP-2008 23:16:39
estimated startup time 25 second 26-SEP-2008 23:16:39
standby has been open N 26-SEP-2008 23:16:39
transport lag +00 00:00:00 26-SEP-2008 23:16:39
若 Primary/Standby 均啟用 FLASHBACK DATABASE,Failover 後可將原 Primary 以 FLASHBACK STANDBY DATABASE 方式快速轉為新 Primary 的 Standby,避免完整重建,大幅縮短 RTO。
V$DATAGUARD_STATS 關鍵指標納入 Prometheus/Grafana 告警,apply lag 超過 30 分鐘即觸發 P1 告警。Switchover 是「有備無患」的計畫性演練,Failover 是「危機時刻」的最後防線。掌握兩者差異、建立完善前置檢查與自動化監控,才能在真正災難來臨時,以最小代價守住資料零損失、業務快速恢復的核心 SLA。