首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> Oracle 資料庫 >> Oracle 資料庫基礎

雙機容錯環境下 Oracle 資料庫高可用架構實戰:醫療資訊系統案例

     編輯:Oracle 資料庫基礎

專案背景

醫療機構要求 7×24 小時不間斷服務,採用雙機熱備 (High Availability) 方案保障 Oracle 資料庫連續性。本文記錄完整實施過程與關鍵技術點。

硬體配置

角色型號CPU記憶體
主資料庫伺服器 (A機)Fujitsu Primergy MS-610雙 Xeon 700MHz1GB
備份伺服器 (B機)Fujitsu Team Server C870IE雙 Pentium III 700MHz1GB
  • 共享儲存: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 分別安裝於雙機

  1. 關閉 B 機,在 A 機安裝 Oracle 至 D:\Oracle,歸檔至 E:\
  2. 將 Oracle 三大服務改為**手動啟動**並停止:
    • OracleServiceORCL
    • OracleStartORCL
    • OracleTNSListener
    關鍵:由容錯軟體接管服務啟停,而非 OS 自動啟動
  3. 關閉 A 機,啟動 B 機,**格式化 D 槽**(含 A 機安裝的 Oracle 目錄)
  4. 在 B 機同樣路徑安裝 Oracle,同樣設定服務為手動並停止

本質:Oracle 軟體安裝於雙機本地磁碟,資料檔唯一存放於共享陣列。

3. 容錯軟體安裝與資源組配置

  • 雙機啟動,分別安裝 SLHA 3.0
  • 配置資源組納管:共享磁碟 D:、E:、Oracle 三大服務
  • 設定 A 機為 Active(正常工作),B 機 Standby(等待)
  • Active 狀態下僅 Active 節點可存取共享陣列

4. 關鍵配置細節(避坑指南)

  1. B 機安裝前必須格式化 D 槽,不可僅刪除目錄,否則殘留註冊表/服務導致監聽失敗
  2. 修改 Listener.ora:
    # 將 SERVER 名稱改為 Active Host Name Alias
    (LISTENER =
      (ADDRESS_LIST = (ADDRESS = (PROTOCOL=TCP)(HOST=Active_Host_Alias)(PORT=1521)))
    )
    
    未修改將導致客戶端無法連線
  3. Hosts 檔案加入對應(C:\WINNT\system32\drivers\etc\hosts):
    Active_IP_Address   Active_Host_Name
    確保 IP/主機名解析自動切換
  4. 避免強制切換:必要時先 SVRMGR> SHUTDOWN IMMEDIATE 再手工切換,防資料不一致

雙機容錯原理架構

雙機容錯架構圖

  • 雙伺服器共享外部儲存,各裝雙網卡:一張接 Public Net (LAN),一張互連 Private Net (心跳)
  • 序列埠 + 網路線雙重心跳,防單點故障
  • 共享磁碟陣列 (Public Drives) 經 SCSI 纜線雙連接
  • 單一 Active IP + Active Host Name,隨活躍節點漂移

Oracle 在雙機環境下的運作機制

  1. 正常時:A 機 Active,掛載共享陣列,啟動 Oracle 3 服務,對外服務
  2. 心跳偵測 A 機故障(硬體/OS/網路/Oracle 掛起)
  3. SLHA 自動執行:
    • 接管共享陣列(SCSI Reserve/Release)
    • 在 B 機啟動 Oracle 3 服務
    • 漂移 Active IP/Host Name 至 B 機
  4. 客戶端經歷短暫重連(秒級),繼續存取同一資料

核心:容錯軟體而非 OS 控制 Oracle 服務生命週期,實現資料庫層面的無縫切換。

演練與驗證建議

  1. 計畫內切換測試:業務低峰期手工觸發切換,驗證應用重連時間
  2. 非計畫故障模擬:拔網線、關電源、Kill Oracle 進程,觀察自動切換
  3. 資料一致性驗證:切換前後執行 SELECT COUNT(*) FROM critical_table; 對比
  4. 歸檔日誌連續性檢查:確認 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

雙機容錯是高可用的起點,隨著業務增長,架構需演進為多節點叢集、多機房災備,但核心原則不變:單一資料源、自動故障偵測、秒級服務漂移、資料零損失。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved