專案背景
醫療機構要求 7×24 小時不間斷服務,採用雙機熱備 (High Availability) 方案保障 Oracle 資料庫連續性。本文記錄完整實施過程與關鍵技術點。
硬體配置
| 角色 | 型號 | CPU | 記憶體 |
| 主資料庫伺服器 (A機) | Fujitsu Primergy MS-610 | 雙 Xeon 700MHz | 1GB |
| 備份伺服器 (B機) | Fujitsu Team Server C870IE | 雙 Pentium III 700MHz | 1GB |
- 共享儲存:IQstore R1500 磁碟陣列(雙 SCSI 接口)
- 心跳連線:RS-232 序列埠 + RJ-45 網路線(雙重冗余)
軟體環境
- OS:Windows NT Server 4.0 SP5
- Oracle:7.3.3 Enterprise Edition
- 容錯軟體:天地 SLHA 3.0
- 輔助:IE 5.0、MDAC 2.0
實施步驟
1. 作業系統安裝與磁碟規劃
- 分別在 A、B 機安裝 NT 4.0 SP5
- 磁碟管理器劃分陣列為邏輯盤 D: (Oracle 軟體)、E: (歸檔日誌)
- 此時雙機均可見共享陣列
2. Oracle 分別安裝於雙機
- 關閉 B 機,在 A 機安裝 Oracle 至 D:\Oracle,歸檔至 E:\
- 將 Oracle 三大服務改為**手動啟動**並停止:
OracleServiceORCL
OracleStartORCL
OracleTNSListener
關鍵:由容錯軟體接管服務啟停,而非 OS 自動啟動
- 關閉 A 機,啟動 B 機,**格式化 D 槽**(含 A 機安裝的 Oracle 目錄)
- 在 B 機同樣路徑安裝 Oracle,同樣設定服務為手動並停止
本質:Oracle 軟體安裝於雙機本地磁碟,資料檔唯一存放於共享陣列。
3. 容錯軟體安裝與資源組配置
- 雙機啟動,分別安裝 SLHA 3.0
- 配置資源組納管:共享磁碟 D:、E:、Oracle 三大服務
- 設定 A 機為 Active(正常工作),B 機 Standby(等待)
- Active 狀態下僅 Active 節點可存取共享陣列
4. 關鍵配置細節(避坑指南)
- B 機安裝前必須格式化 D 槽,不可僅刪除目錄,否則殘留註冊表/服務導致監聽失敗
- 修改 Listener.ora:
# 將 SERVER 名稱改為 Active Host Name Alias
(LISTENER =
(ADDRESS_LIST = (ADDRESS = (PROTOCOL=TCP)(HOST=Active_Host_Alias)(PORT=1521)))
)
未修改將導致客戶端無法連線
- Hosts 檔案加入對應(
C:\WINNT\system32\drivers\etc\hosts):
Active_IP_Address Active_Host_Name
確保 IP/主機名解析自動切換
- 避免強制切換:必要時先
SVRMGR> SHUTDOWN IMMEDIATE 再手工切換,防資料不一致
雙機容錯原理架構

- 雙伺服器共享外部儲存,各裝雙網卡:一張接 Public Net (LAN),一張互連 Private Net (心跳)
- 序列埠 + 網路線雙重心跳,防單點故障
- 共享磁碟陣列 (Public Drives) 經 SCSI 纜線雙連接
- 單一 Active IP + Active Host Name,隨活躍節點漂移
Oracle 在雙機環境下的運作機制
- 正常時:A 機 Active,掛載共享陣列,啟動 Oracle 3 服務,對外服務
- 心跳偵測 A 機故障(硬體/OS/網路/Oracle 掛起)
- SLHA 自動執行:
- 接管共享陣列(SCSI Reserve/Release)
- 在 B 機啟動 Oracle 3 服務
- 漂移 Active IP/Host Name 至 B 機
- 客戶端經歷短暫重連(秒級),繼續存取同一資料
核心:容錯軟體而非 OS 控制 Oracle 服務生命週期,實現資料庫層面的無縫切換。
演練與驗證建議
- 計畫內切換測試:業務低峰期手工觸發切換,驗證應用重連時間
- 非計畫故障模擬:拔網線、關電源、Kill Oracle 進程,觀察自動切換
- 資料一致性驗證:切換前後執行
SELECT COUNT(*) FROM critical_table; 對比
- 歸檔日誌連續性檢查:確認 E:\ 歸檔日誌無間斷、可用於恢復
現代化演進提示
- OS:Windows Server 2019 / Linux (RHEL/OEL) + Pacemaker/Corosync
- 叢集:Windows Server Failover Clustering (WSFC) / Veritas VCS / Oracle Clusterware
- 資料庫:Oracle RAC (共享一切) 或 Data Guard (異地備援) + Fast-Start Failover
- 儲存:ASM / SAN 多路徑 / NVMe-oF
雙機容錯是高可用的起點,隨著業務增長,架構需演進為多節點叢集、多機房災備,但核心原則不變:單一資料源、自動故障偵測、秒級服務漂移、資料零損失。