RAC 部署三大階段
- 安裝 Clusterware (Grid Infrastructure) — **最易出錯、最關鍵**
- 安裝 Oracle Database 軟體 + RAC 選項
- 建立 RAC 資料庫
本文聚焦階段一常見 10 大錯誤與預防對策,適用平台:AIX、Solaris、HP-UX、Linux。
Clusterware 安裝前 10 大必檢項目
| # | 檢查項目 | 錯誤後果 | 正確做法 |
| 1 | **節點時間同步** | CSSD 守護進程啟動失敗、投票盤心跳異常、節點驅逐 | 配置 NTP/chrony,時間差 < 1 秒,建議用 `ntpd -x` 避免時間跳躍 |
| 2 | **公網卡 IP 禁用私有網段** | VIP/SCAN 解析衝突、HAIP 通訊失敗 | 公網卡**嚴禁**使用 192.168.x.x、10.x.x.x、172.16-31.x.x |
| 3 | **公網卡統一性** | OUI 校驗失敗、VIP 綁定錯誤 | 所有節點公網介面名稱、編號、子網掩碼**完全一致** |
| 4 | **VIP 與公網同一子網** | VIP 無法啟動、客戶端連線導向錯誤 | VIP 必須規劃在公網子網內,且未被佔用 |
| 5 | **VIP 指定預設閘道 (Solaris 等)** | 跨子網路由失敗、VIP 漂移異常 | Solaris 需在 `/etc/defaultrouter` 或 `route -p add` 設定 VIP 閘道 |
| 6 | **共享磁碟分區全節點可見** | OCR/投票盤裝置找不到、安裝中斷 | 所有節點 `ls -l /dev/oracleasm/*` 或 `multipath -ll` 驗證一致 |
| 7 | **OCR/投票盤權限與擁有者** | CSSD 啟動失敗、權限被拒 | 裝置檔擁有者 `grid:asmadmin`,權限 `660`,原始裝置配置 udev/multipath 規則持久化 |
| 8 | **主機名命名規範** | OUI 校驗報錯、SCAN 解析異常 | 主機名**僅含小寫字母、數字、連字號 (-)**,**禁用底線 (_) 與大寫** |
| 9 | **失敗必須徹底清理重來** | 殘留配置導致二次安裝更詭異 | 執行 `rootcrs.pl -delete -force`、清理 `/etc/oracle`、OCR/投票盤裝置清零、刪除 Grid Home |
| 10 | **ORACLE_HOME 階段隔離** | 變數污染、Inventory 衝突 | 安裝 Clusterware 時設 `ORACLE_HOME=`;安裝 DB 時**重新設定**指向 ``,兩者**不可相同** |
節點互信配置 (SSH 等價性)
# 作為 grid/oracle 使用者在各節點執行
ssh-keygen -t rsa # 一路 Enter
ssh-copy-id node1
ssh-copy-id node2
# 驗證無密碼登入
ssh node1 date
ssh node2 date
# 關鍵:/etc/ssh/sshd_config 需允許
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
# 修改後 systemctl restart sshd
網路規劃標準範本
| 網路類型 | 介面 | IP 範例 | 用途 | DNS 註冊 |
| Public | eth0 / enp0s3 | 10.10.10.x | 客戶端連線、管理 | 主機名、VIP、SCAN |
| Private (Interconnect) | eth1 / enp0s8 | 192.168.10.x | Cache Fusion、心跳 | **不註冊 DNS** |
| VIP | eth0:1 (邏輯) | 10.10.10.10x | 故障轉移、負載均衡 | 主機名-VIP |
| SCAN | 無實體介面 | 10.10.10.20x (3 IP) | 單一客戶端存取名稱 | SCAN 名稱解析 3 IP |
安裝失敗常見錯誤代碼與對策
| 錯誤代碼/現象 | 典型原因 | 解決路徑 |
| PRVF-5436 / PRVF-5447 (時間不同步) | NTP 未配置/異常 | 配置 NTP,`ntpdate -u ` 手動同步後再裝 |
| PRVF-5150 (公網 IP 為私有網段) | 公網卡用 192.168.x.x | 重新規劃公網 IP 為公網/企業內網段 |
| PRVF-5184 (VIP 不在公網子網) | VIP 規劃錯誤 | VIP 必須與公網同一子網 |
| PRVF-5139 (主機名含非法字元) | 主機名含 _ 或大寫 | `hostnamectl set-hostname ` 修正全叢集 |
| CSSD 啟動失敗 / OCR 不可用 | 裝置權限/路徑/多徑錯誤 | 檢查 udev 規則、multipath.conf、裝置擁有者 grid:asmadmin 660 |
| VIP 資源啟動失敗 (ORA-44000) | IP 衝突/網卡綁定錯誤 | `srvctl status vip -n `、`ifconfig -a` 排查 IP 佔用 |
驗證 Clusterware 安裝成功標準
# 1. 叢集狀態
crsctl check cluster -all
# 輸出應顯示所有節點 CRS/CRS/CSS/ECT 均為 ONLINE
# 2. 節點權重
crsctl get css ipmiaddr # 若配置 IPMI
crsctl query css votedisk # 投票盤狀態
# 3. OCR 完整性
ocrcheck
# 應顯示 Version, total space, used space, available space, 且無錯誤
# 4. 核心資源狀態
crsctl status resource -t
# ora.cluster_interconnect.haip, ora.net1.network, ora.ons, ora.evmd 等均 ONLINE
避坑口訣
- 時間先同步,網卡要統一,私網別混公網
- VIP同子網,閘道要配齊 (Solaris)
- 磁碟全節點看得到,權限grid:asmadmin 660
- 主機名小寫連字號,底線大寫堅決不
- 失敗不硬拗,**徹底清理**再出發
- 兩階段兩個 Home,**變量隔離**不混淆
- 互信SSH 免密碼,驗證要跑通
RAC 部署「三分安裝,七分規劃」。前置檢查單逐項勾選、網路/儲存/OS 層面驗證無誤再啟動 OUI,是成功的關鍵。