Oracle 网络高可用详解
Oracle 网络高可用详解
适用版本:Oracle Database 10g / 11g / 12c / 19c / 23ai 文档版本:v1.0 / 2026-07
1. 概述
网络高可用保证数据库连接稳定[1]:
详细见:Oracle 网络架构深度、Oracle 监听器工作原理与配置。
2. 网络冗余
2.1 多网卡
- 双网卡
- bond
- 冗余
2.2 多链路
- 双交换机
- 多链路
- 高可用
2.3 HAIP
- High Availability IP
- 多 Private IP
- RAC 互联
3. Public 网络
3.1 VIP
- 每节点 VIP
- 故障切换
- 应用
3.2 SCAN
- Single Client Access Name
- 3 个 IP
- 负载均衡
3.3 冗余
- 双网卡
- bond
- 高可用
4. Private 网络
4.1 Cache Fusion
- 节点间通信
- 低延迟
- 高带宽
4.2 HAIP
- 多 Private IP
- 冗余
- 自动切换
4.3 冗余
- 双网卡
- 双交换机
- 高可用
5. Listener 高可用
5.1 本地 Listener
- 每节点一个
- 监听实例
- VIP
5.2 SCAN Listener
- 3 个
- 负载均衡
- 故障切换
5.3 故障
- Listener 故障
- 连接切换
- 透明
6. 连接故障切换
6.1 TAF
# tnsnames.ora
FAILOVER = ON
FAILOVER_MODE = (TYPE=SELECT)(METHOD=BASIC)
6.2 FCF
- Fast Connection Failover
- 连接池
- 快速
6.3 AC/TAC
- Application Continuity
- 事务重试
- 透明
详细见:Oracle 应用连续性详解。
7. CMAN
7.1 Connection Manager
- 多路复用
- 代理
- 集中
7.2 优势
- 连接数减少
- 安全
- 高可用
7.3 配置
# cman.ora
CMAN = (PROTOCOL=TCP)(HOST=cman-host)(PORT=1521)
详细见:Oracle Connection Manager CMAN。
8. 网络加密
8.1 Native Encryption
# sqlnet.ora
SQLNET.ENCRYPTION_SERVER=REQUIRED
SQLNET.ENCRYPTION_TYPES_SERVER=AES256
8.2 SSL/TLS
- 证书
- 加密
- 安全
8.3 高可用
- 加密不影响
- 冗余
- 高可用
详细见:Oracle 网络加密与 SSL TLS。
9. 负载均衡
9.1 Client-side
LOAD_BALANCE = ON
9.2 Server-side
- Listener 分配
- 基于负载
- 智能
9.3 服务
- Preferred/Available
- 负载分布
- 优化
10. 监控
10.1 网络
ifconfig -a
ping node1-vip
ping node2-priv
nslookup scan.example.com
10.2 Listener
lsnrctl status
srvctl status listener
srvctl status scan_listener
10.3 连接
SELECT inst_id, service_name, count(*)
FROM gv$session
GROUP BY inst_id, service_name;
11. 应用场景
11.1 RAC
- VIP/SCAN
- HAIP
- 高可用
11.2 Data Guard
- 跨地域网络
- 冗余
- 灾备
11.3 关键业务
- 冗余网络
- 负载均衡
- 高可用
12. 常见问题
12.1 网络中断
- 冗余切换
- 监控
- 修复
12.2 Listener 故障
- SCAN 切换
- 监控
- 重启
12.3 连接拒绝
- 资源
- Listener
- 检查
13. 最佳实践
- 双网卡:冗余
- VIP/SCAN:使用
- HAIP:Private
- TAF/AC:故障切换
- 监控:网络
- 测试:故障
- 负载均衡:配置
- CMAN:场景
- 文档:配置
- 演练:网络
14. 参考资料
[1] Oracle Database Net Services Administrator’s Guide 19c https://docs.oracle.com/en/database/oracle/oracle-database/19/netag/