核心機制
Data Guard 透過 Standby Database 防止資料災難。將 Primary Database 的 Redo Log 傳送並應用到 Standby,保持同步:
- 同步寫入:Redo Log 直接同步寫入 Standby,零資料遺失,但影響 Primary 效能。
- 非同步寫入:歸檔 Redo Log 非同步傳送,極小效能損失下最小化資料遺失。
- 快速應用:Redo 到達 Standby 後快速應用,Primary 故障可快速 Failover。
- 延遲應用:延遲一段時間再應用,避免 Primary 錯誤快速傳播到 Standby。
資料保護層級
| 模式 | 說明 |
| Guaranteed Protection | 修改 Primary 時至少一 Standby 有效。連線中斷時中斷 Primary 工作防止不一致,零資料遺失,效能影響大。 |
| Instant Protection | 至少一 Standby 有效。連線中斷允許不一致,恢復後解決,效能影響較小。 |
| Rapid Protection | 修改快速應用於 Standby。可能遺失資料,效能影響小。 |
| Delayed Protection | 延遲應用。允許主備分歧,遺失量等同未歸檔線上 Redo,效能影響小。 |
限制資料遺失量
- Standby Zero Data Loss:LGWR 寫本地磁碟同時傳送 Standby,遠端 Redo 鏡像,極大損失效能。
- ARCHIVE_LAG_TARGET:設定日誌啟用到傳送 Standby 的時間間隔(建議 1800 秒)。長交易會導致 Standby 遺失更多資料。
與 Oracle 8 Standby Database 關係
Oracle 9i 將改進的 8 版 Standby 功能與新防錯誤/癱瘓模組合稱為 Data Guard。8 版提供自動建立/維護 Production 拷貝、最多 4 個 Standby、標準恢復方法自動應用歸檔日誌、Primary 開啟/Standby 恢復或唯讀、Oracle Net 傳輸對效能影響可忽略。
Physical vs Logical Standby Database
| 類型 | 特性 |
| Physical Standby | 物理上與 Primary 相同(區塊級恢復用 ROWID),結構描述必須相同,不可讀寫開啟。為 8 版 Automated Standby 的 9i 版,日誌傳輸服務獨立模組化。 |
| Logical Standby | 將歸檔日誌轉為 SQL 交易應用於開啟的 Standby,物理上不同但邏輯相同,可接管處理。可並發建立不同索引/物化視圖、決策支援任務。最重要資料保護特性。 |
選擇考量
- Logical Standby 可雙重用途,資料庫開啟時可修改
- Logical Standby 需 DBA 較高技能
- 極大化資料保護方案通常包含 Physical 與 Logical 兩類 Standby
Failover 與 Switchover
| 類型 | 特性 |
| Failover | Primary 故障無法及時恢復,拋棄 Primary 將 Standby 轉為 Primary。Primary 離線、Standby 上線,由系統/軟體故障觸發。除非 Guaranteed Protection 模式否則可能遺失資料。原 Primary 需 Reinstantiated,其他 Standby 亦需。 |
| Switchover | Primary 正常時主動切換角色。故意 Primary 離線、Standby 上線,可用於平滑升級。即使不應用 Redo 也不遺失資料。無需 Reinstantiated,Primary 幾乎立即在 Standby 恢復功能,可定期維護不中斷操作。 |
Data Guard 元件
- Log Transport Services:Physical/Logical 共用,控制日誌傳輸機制、錯誤處理、報告、失敗後取回遺失日誌。
- Data Guard Broker:監控、控制、自動化日誌傳輸與 Standby 元件。一條指令啟動 Failover。介面:OEM Data Guard Manager(GUI)或命令列工具。
- LogMiner:9i 大幅增強,DBA 用 SQL 讀/分析/解讀日誌檔。提供 Logical Standby 基礎設施。OEM LogMiner Viewer 增加圖形介面。
- Disaster Recovery Server (DR Server) & DRMON:鬆散連結節點組成單一易管理解決方案,節點間網路連結、資料複寫實現 Failover。提供邏輯配置 Failover 資源群組、指定基礎計算框架兩大功能。