Oracle RAC VIP 与 SCAN 详解

Oracle RAC VIP 与 SCAN 详解

适用版本:Oracle Database 11g / 12c / 19c / 23ai 文档版本:v1.0 / 2026-07


1. 概述

VIP 和 SCAN 是 RAC 网络关键[1]:

详细见:Oracle 服务名与 SID 区别Oracle 监听器工作原理与配置


2. VIP

2.1 概念

- Virtual IP
- 每节点一个
- 故障切换
- 应用透明

2.2 工作机制

- 节点正常:VIP 在节点
- 节点故障:VIP 切换其他节点
- 应用快速感知
- TAF 配合

2.3 优势

- 快速故障检测
- 不等待 TCP 超时
- 应用切换

3. SCAN

3.1 概念

- Single Client Access Name
- 11g R2+
- 单一连接名
- 3 个 IP

3.2 优势

- 应用配置简化
- 节点增删无需改客户端
- 负载均衡
- 故障切换

3.3 DNS

- DNS 轮询
- 3 个 IP
- GNS(Grid Naming Service)

4. 配置

4.1 SCAN IP

- 3 个 IP
- DNS 配置
- 同一子网

4.2 SCAN Listener

srvctl status scan_listener
srvctl config scan_listener
srvctl start scan_listener

4.3 VIP

srvctl status vip -n node1
srvctl config vip -n node1
srvctl start vip -n node1

5. 连接

5.1 SCAN

# tnsnames.ora
prod = 
  (DESCRIPTION = 
    (ADDRESS = (PROTOCOL = TCP)(HOST = scan.example.com)(PORT = 1521))
    (CONNECT_DATA = (SERVER = DEDICATED)(SERVICE_NAME = prod))
  )

5.2 VIP

prod_vip = 
  (DESCRIPTION = 
    (ADDRESS_LIST = 
      (ADDRESS = (PROTOCOL = TCP)(HOST = node1-vip)(PORT = 1521))
      (ADDRESS = (PROTOCOL = TCP)(HOST = node2-vip)(PORT = 1521))
    )
    (CONNECT_DATA = (SERVICE_NAME = prod))
  )

6. 负载均衡

6.1 SCAN Listener

- 接收连接
- 转发到本地监听器
- 负载分布

6.2 服务

- Preferred/Available
- 服务分布
- 故障切换

7. 故障切换

7.1 VIP 切换

- 节点故障
- VIP 迁移
- ARP 更新
- 应用重连

7.2 SCAN

- SCAN IP 保留
- 连接重定向
- 应用无感知

7.3 TAF

# tnsnames.ora
prod = 
  (DESCRIPTION = 
    (FAILOVER = ON)
    (LOAD_BALANCE = ON)
    (ADDRESS = ...)
    (CONNECT_DATA = 
      (SERVICE_NAME = prod)
      (FAILOVER_MODE = (TYPE = SELECT)(METHOD = BASIC))
    )
  )

详细见:Oracle TAF 与 TAC 配置详解


8. GNS

8.1 概念

- Grid Naming Service
- 11g R2+
- 动态 VIP
- 简化

8.2 优势

- 无需固定 IP
- DHCP
- 自动

9. 节点管理

9.1 添加节点

# 添加节点
addNode.sh

9.2 删除节点

# 删除节点
crsctl delete node -n node3

9.3 SCAN

- 节点变更不影响 SCAN
- 客户端无感知

10. 监控

10.1 VIP

srvctl status vip
crsctl stat res -t | grep vip

10.2 SCAN

srvctl status scan
srvctl status scan_listener

10.3 网络

ifconfig -a
ping node1-vip
nslookup scan.example.com

11. 应用场景

11.1 高可用

- VIP 故障切换
- 应用快速恢复

11.2 负载均衡

- SCAN
- 连接分布
- 节点均衡

11.3 简化

- SCAN 单一连接
- 节点变更无需改配置

12. 常见问题

12.1 VIP 失败

- 节点故障
- 切换
- 检查

12.2 SCAN 不可达

- DNS
- SCAN Listener
- 检查

12.3 连接慢

- DNS 解析
- SCAN Listener
- 优化

13. 最佳实践

  1. SCAN:必须
  2. 3 个 IP:推荐
  3. DNS:可靠
  4. VIP:每节点
  5. TAF:配置
  6. 服务:Preferred/Available
  7. 监控:状态
  8. 测试:故障切换
  9. 文档:配置
  10. 演练:定期

14. 参考资料

[1] Oracle Grid Infrastructure Administrator’s Guide 19c, “VIP and SCAN” https://docs.oracle.com/en/database/oracle/oracle-database/19/cwali/