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

Oracle RAC 配置支持 WebSphere Process Server 完整實施指南

     編輯:Oracle 資料庫基礎

前言

Oracle Real Application Clusters (RAC) 提供集群級高可用與擴展性,是關鍵業務系統的首選部署架構。本文基於 WebSphere Process Server (WPS) 6.2 Stand-alone 架構,詳細記錄 Oracle RAC 兩節點配置全流程:從單節點基線驗證、共享存儲規劃、多實例/多模式用戶創建、權限授予、數據源配置、到故障切換 (Failover) 場景測試驗證。

架構拓撲


+----------------+       +----------------+
|  Oracle Node 1 |       |  Oracle Node 2 |
|  (Instance 1)  |       |  (Instance 2)  |
|  Linux Server  |       |  Linux Server  |
+-------+--------+       +--------+-------+
        |                         |
        |      Shared Disk Array  |
        +-----------+-------------+
                    | (OCR, Voting Disk, Datafiles, Redologs)
                    v
            +-------+-------+
            |  ASM Instance |  (或共享文件系統)
            +---------------+

+----------------+       +----------------+
|  WPS Server    |       |  WPS Server    |  (Stand-alone 雙機或單機)
|  (App Tier)    |       |  (App Tier)    |
+----------------+       +----------------+

階段一:單節點 Oracle 基線驗證 (前置條件)

在配置 RAC 前,必須確保單節點 Oracle 與 WPS 連接正常:

  1. 驅動部署:將 ojdbc6.jar (或 classes12.zip 舊版) 複製到 WPS `/shared/app` 目錄。
  2. 建立業務模式用戶:WPS 需 8-10 個獨立 Schema 隔離不同運行時組件數據(見下表)。
  3. 授權標準權限:GRANT CONNECT, RESOURCE, UNLIMITED TABLESPACE TO schema; + GRANT EXECUTE ON DBMS_SYSTEM TO schema; + GRANT JAVAUSERPRIV TO schema;。
  4. 配置 WPS 數據源:JDBC URL 格式 jdbc:oracle:thin:@//host:1521/service_name,連接池參數調優。
  5. 驗證:WPS 啟動無誤,業務流程可部署執行。

WPS 所需 Oracle Schema 規劃表

Schema 名稱規則WPS 默認組件用途說明
<SID_Prefix>COMM (如 WPCDB)WPS 核心配置主配置數據、部署元數據
<SID_Prefix>CEID (如 CEIDB)Common Event Infrastructure (CEI)事件路由、訂閱、持久化
<SID_Prefix>SS00 (如 SCASYSMSG)SCA System Bus Messaging Engine系統總線消息存儲
<SID_Prefix>SA00 (如 SCAAPPMSG)SCA Application Bus Messaging Engine應用總線消息存儲
<SID_Prefix>CM00 (如 CEIMSG)CEI Messaging EngineCEI 消息引擎存儲
<SID_Prefix>BM00 (如 BPCMSG)Business Process Choreographer Bus業務流程編排總線存儲
<SID_Prefix>BE00 (如 BPCDB)BPC Container流程實例、任務、上下文數據
<SID_Prefix>BC00 (如 BPCOBS)BPC Explorer (可選)流程瀏覽器 UI 數據

階段二:Oracle RAC 兩節點部署與配置

1. 共享存儲規劃 (ASM 推薦)

  • 磁盤組:+DATA (數據文件)、+FRA (快速恢復區)、+OCR (集群註冊表/投票盤)。
  • 冗余度:Normal (雙鏡像) 或 High (三鏡像)。
  • ASM 實例:每節點一個 +ASM1、+ASM2,組成 ASM 集群。

2. RAC 數據庫創建 (DBCA 靜默模式範例)

dbca -silent -createDatabase \
  -gdbName RACDB \
  -sid RACDB \
  -createAsContainerDatabase false \
  -templateName General_Purpose.dbc \
  -sysPassword SysPass123! \
  -systemPassword SysPass123! \
  -emConfiguration NONE \
  -storageType ASM \
  -diskGroupName +DATA \
  -recoveryGroupName +FRA \
  -characterSet AL32UTF8 \
  -nationalCharacterSet AL16UTF16 \
  -totalMemory 8192 \
  -databaseType MULTIPURPOSE \
  -nodelist node1,node2 \
  -instanceNamePrefix RACDB

3. 服務 (Service) 配置 - 關鍵

為 WPS 創建專用服務,啟用負載均衡與故障轉移:

srvctl add service -d RACDB -s WPS_SERVICE -r "RACDB1,RACDB2" -P BASIC -l PRIMARY -e SELECT -m BASIC -w 5 -z 3
srvctl start service -d RACDB -s WPS_SERVICE
  • -r:首選實例列表
  • -P BASIC:TAF 基本故障轉移 (SELECT 級)
  • -l PRIMARY:目標角色
  • -e SELECT:故障轉移類型 (SELECT 重試查詢)
  • -m BASIC:負載均衡目標

4. SCAN Listener 配置

確保 SCAN IP 解析到 3 個 VIP,客戶端 JDBC URL 使用 SCAN:

jdbc:oracle:thin:@//scan-cluster:1521/WPS_SERVICE

階段三:WPS 數據源配置對接 RAC

1. JDBC URL 高可用寫法

# 方式一:SCAN + 服務名 (推薦)
jdbc:oracle:thin:@//scan-cluster:1521/WPS_SERVICE

# 方式二:長連接描述符 (支援 FAILOVER/LOAD_BALANCE 參數)
jdbc:oracle:thin:@(DESCRIPTION=
    (ADDRESS_LIST=(LOAD_BALANCE=ON)(FAILOVER=ON)
        (ADDRESS=(PROTOCOL=TCP)(HOST=node1-vip)(PORT=1521))
        (ADDRESS=(PROTOCOL=TCP)(HOST=node2-vip)(PORT=1521)))
    (CONNECT_DATA=(SERVICE_NAME=WPS_SERVICE)(FAILOVER_MODE=(TYPE=SELECT)(METHOD=BASIC)(RETRIES=180)(DELAY=5))))

2. 連接池關鍵參數 (WPS 資源適配器)

參數建議值說明
Minimum connections10預熱連接
Maximum connections100根據 JVM 堆/DB 最大會話調整
Aged timeout300秒,回收空閒連接
Unused timeout600秒
Reap time180秒,清理線程間隔
Purge policyEntirePool連接失效時清理整個池,強制重建
Validate new connectiontrue獲取前驗證
Validation querySELECT 1 FROM DUAL輕量級驗證

3. 關鍵 JVM 系統屬性 (防止連接洩漏/殭屍連接)

-Doracle.net.CONNECT_TIMEOUT=10000
-Doracle.net.READ_TIMEOUT=30000
-Djavax.net.ssl.trustStore=... (若啟用 SSL)

階段四:故障切換 (Failover) 驗證測試

測試場景:節點 1 計劃性關機

  1. 基線記錄:WPS 正常處理 CitiApp 場景事件流,記錄吞吐量 (TPS)、延遲 (P99)。
  2. 觸發故障:srvctl stop instance -d RACDB -i RACDB1 -o IMMEDIATE (或關機 Node 1)。
  3. 觀察現象:
    • RAC 實例 1 關閉,服務 WPS_SERVICE 自動遷移到實例 2。
    • SCAN Listener 更新路由,新連接導向實例 2。
    • 現有連接:SELECT 級 TAF 觸發,進行中的查詢在實例 2 重新執行 (需應用捕獲 SQLRecoverableException 重試);事務 (DML) 回滾,應用層需重試業務邏輯。
  4. 驗證標準:
    • WPS 無宕機、無數據丟失 (持久化消息在共享存儲/DB 安全)。
    • 事件流處理中斷 < 30 秒 (取決於 TAF RETRIES/DELAY)。
    • 業務流程實例狀態一致,可在 BPC Explorer 查看。
  5. 恢復驗證:啟動 Node 1 / 實例 1,服務自動均衡,WPS 連接池自動感知新實例 (需 PurgePolicy=EntirePool 或定期驗證)。

常見問題與排查

現象可能原因解決方案
WPS 啟動報 ORA-12514服務名錯誤、Listener 未註冊服務檢查 lsnrctl services、srvctl config service、JDBC URL Service_Name 大小寫
Failover 時應用報 Closed Connection連接池未啟用 PurgePolicy、驗證查詢失效設 PurgePolicy=EntirePool、Validation Query=SELECT 1 FROM DUAL、Aged Timeout < 300
RAC 實例間數據不一致未啟用 Cache Fusion、序列/緩存未配置 ORDER/NOORDER序列用 CREATE SEQUENCE ... ORDER、全局緩存服務 (GCS) 正常
ASM 磁盤組掛載失敗多路徑配置錯誤、磁盤權限 (oracle:asmadmin 0660)檢查 multipath -ll、ls -l /dev/oracleasm/disks/、asmcmd lsdsk

網絡部署 (ND) 架構差異說明

本文以 Stand-alone 為例。ND 架構 (Deployment Manager + Node Agents) 差異在:

  • 數據源在 Cell 級定義,範圍更廣。
  • 需同步節點配置 (syncNode.sh)。
  • 集群總線 (SCA Messaging Engine) 需配置高可用消息存儲 (Data Source + SIBus),RAC 服務名相同。
  • 部署管理器本身不存業務數據,無需 RAC 感知。

結語

Oracle RAC + WPS 架構的核心在於服務級故障轉移 (TAF/FCF)、SCAN 統一訪問入口、共享存儲數據零丟失、連接池快速感知拓撲變更。落地關鍵:單節點基線先行、Schema 隔離規範、JDBC URL 長描述符、連接池 PurgePolicy、計劃性故障演練常態化。建議引入 Oracle RAC One Node (單實例高可用) 作為過渡,或直接上 19c/21c 長期支持版本,配合 Oracle Clusterware 19c+ 的 Fleeting Resource、Application Continuity 等新特性,構建更彈性的業務平台。

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