節點規劃範例(雙節點)
| 用途 | Node 1 | Node 2 | 說明 |
| Public IP (Hostname) | 172.16.19.11 (db210-rac1) | 172.16.19.12 (db210-rac2) | 應用連線、管理 SSH |
| VIP (Virtual IP) | 172.16.19.211 (db210-rac1vip) | 172.16.19.212 (db210-rac2vip) | 故障轉移、Client 連線入口 |
| Private Interconnect | 192.168.18.11 (db210-rac1priv) | 192.168.18.12 (db210-rac2priv) | Cache Fusion、心跳、專用交換機/ VLAN |
| Storage Heartbeat (可選) | 192.168.19.11 (db210-rac1hb) | 192.168.19.12 (db210-rac2hb) | 第三心跳裝置,防腦裂 |
/etc/hosts 標準範本
127.0.0.1 localhost
# Node 1
172.16.19.11 db210-rac1 db210-rac1.hurray.com.cn
172.16.19.211 db210-rac1vip db210-rac1vip.hurray.com.cn
192.168.18.11 db210-rac1priv db210-rac1priv.hurray.com.cn
192.168.19.11 db210-rac1hb db210-rac1hb.hurray.com.cn
# Node 2
172.16.19.12 db210-rac2 db210-rac2.hurray.com.cn
172.16.19.212 db210-rac2vip db210-rac2vip.hurray.com.cn
192.168.18.12 db210-rac2priv db210-rac2priv.hurray.com.cn
192.168.19.12 db210-rac2hb db210-rac2hb.hurray.com.cn
# SCAN (11gR2+ 單獨 DNS/Grid Naming Service)
# 172.16.19.220 db210-scan db210-scan.hurray.com.cn
Listener.ora(Node 1 範例,Node 2 對稱)
LISTENER_DB210-RAC1 =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS_LIST = (ADDRESS = (PROTOCOL=TCP)(HOST=db210-rac1vip)(PORT=1521)(IP=FIRST)))
(ADDRESS_LIST = (ADDRESS = (PROTOCOL=TCP)(HOST=172.16.19.11)(PORT=1521)(IP=FIRST)))
(ADDRESS_LIST = (ADDRESS = (PROTOCOL=IPC)(KEY=EXTPROC)))
)
)
- **綁定 VIP** 而非 Public IP,支援故障轉移。
- `IP=FIRST` 強制 IPv4(雙棧環境避免解析延遲)。
- IPC 保留本地連線效能。
TNSNAMES.ORA 服務定義
EYGLE1 = -- 直連 Node 1
(DESCRIPTION =
(ADDRESS = (PROTOCOL=TCP)(HOST=db210-rac1vip)(PORT=1521))
(CONNECT_DATA = (SERVER=DEDICATED)(SERVICE_NAME=eygle)(INSTANCE_NAME=eygle1))
)
EYGLE2 = -- 直連 Node 2
(DESCRIPTION =
(ADDRESS = (PROTOCOL=TCP)(HOST=db210-rac2vip)(PORT=1521))
(CONNECT_DATA = (SERVER=DEDICATED)(SERVICE_NAME=eygle)(INSTANCE_NAME=eygle2))
)
EYGLE = -- 負載均衡 + 故障轉移(10g 風格,11g+ 建議用 SCAN)
(DESCRIPTION =
(ADDRESS = (PROTOCOL=TCP)(HOST=db210-rac1vip)(PORT=1521))
(ADDRESS = (PROTOCOL=TCP)(HOST=db210-rac2vip)(PORT=1521))
(LOAD_BALANCE = YES)
(CONNECT_DATA =
(SERVER=DEDICATED)(SERVICE_NAME=eygle)
(FAILOVER_MODE = (TYPE=SELECT)(METHOD=BASIC)(RETRIES=180)(DELAY=5))
)
)
LISTENERS_EYGLE = -- 遠端 Listener 群組(Data Guard、DG Broker 用)
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL=TCP)(HOST=db210-rac1vip)(PORT=1521))
(ADDRESS = (PROTOCOL=TCP)(HOST=db210-rac2vip)(PORT=1521))
)
關鍵設計原則
- **VIP 必須在 Public 子網、可被 Client 解析**,故障時 CRS 自動將 VIP 漂移到存活節點。
- **Private Interconnect 必須獨立物理網卡/交換機**,MTU 9000 (Jumbo Frame),禁用防火牆、QoS。
- `hosts` 檔案**全節點一致**,避免 DNS 依賴(DNS 故障不影響叢集心跳)。
- 11gR2+ **SCAN (Single Client Access Name)** 取代多 VIP 列表,單一 DNS 名稱解析 3 IP,Client 不變、易維護。
- Listener 由 **Grid Infrastructure 自動管理**,手動修改 `listener.ora` 會被覆蓋,建議用 `srvctl modify listener`。