Oracle Flex Cluster 详解

Oracle Flex Cluster 详解

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


1. 概述

Flex Cluster 是 12c 引入的集群架构[1]:

详细见:Oracle Clusterware 架构详解Oracle Grid Infrastructure 详解


2. 架构

2.1 Hub 节点

- 中心节点
- 直接连存储
- 运行 ASM
- 紧密耦合

2.2 Leaf 节点

- 叶节点
- 不直接连存储
- 通过 Hub
- 轻量

2.3 优势

- 大规模
- 分层
- 灵活

3. vs 传统 Cluster

3.1 传统

- 所有节点平等
- 紧密耦合
- 规模限制

3.2 Flex

- Hub-Leaf 分层
- 松散 Leaf
- 大规模

3.3 规模

- 传统:数十节点
- Flex:数百节点

4. 部署

4.1 安装

- GI 安装时选择 Flex Cluster
- 或转换

4.2 转换

# 传统 -> Flex
crsctl set cluster mode flex
crsctl stop crs
crsctl start crs -wait

4.3 节点角色

# 查看角色
crsctl get node role config
crsctl get node role status

# 设置 Leaf
crsctl set node role hub
crsctl set node role leaf

5. Hub 节点

5.1 角色

- 中心
- ASM
- 存储
- GNS

5.2 数量

- 最少 1
- 推荐 3
- 冗余

5.3 资源

- 数据库
- ASM
- 监听器
- 服务

6. Leaf 节点

6.1 角色

- 轻量
- 应用
- 不运行 ASM

6.2 通信

- 通过 Hub
- ASM 连接
- 网络

6.3 优势

- 轻量
- 大规模
- 应用

7. Flex ASM

7.1 概念

- ASM 客户端/服务端
- Hub 运行 ASM
- Leaf 连接 Hub ASM

7.2 优势

- ASM 冗余
- 不每节点 ASM
- 灵活

7.3 配置

# 查看状态
asmcmd showclustermode
srvctl status asm

8. 数据库部署

8.1 Hub 节点

- RAC 数据库
- 共享存储
- ASM

8.2 Leaf 节点

- 单实例
- 应用
- 不存储

8.3 混合

- Hub:数据库
- Leaf:应用
- 分层

9. 监控

9.1 节点角色

olsnodes -n -s -t

9.2 集群状态

crsctl check cluster -all
crsctl stat res -t

9.3 ASM

srvctl status asm
asmcmd showclustermode

10. 应用场景

10.1 大规模

- 数百节点
- Hub-Leaf
- 扩展

10.2 应用集群

- Hub:数据库
- Leaf:应用
- 分层

10.3 混合负载

- 不同类型
- 灵活
- 管理

11. 限制

11.1 Leaf

- 不直接存储
- 依赖 Hub
- 限制

11.2 网络

- Hub-Leaf 网络
- 带宽
- 监控

11.3 复杂

- 配置复杂
- 管理
- 评估

12. 升级

12.1 滚动

- Hub 逐一
- Leaf 逐一
- 零停机

12.2 兼容

- 版本
- 检查
- 测试

13. 常见问题

13.1 Leaf 不可达

- Hub 故障
- 检查
- 修复

13.2 ASM

- Flex ASM
- 冗余
- 检查

13.3 性能

- Hub-Leaf 网络
- 监控
- 优化

14. 最佳实践

  1. 大规模:使用
  2. Hub 冗余:3+
  3. Flex ASM:启用
  4. 网络:冗余
  5. 监控:状态
  6. 测试:故障
  7. 文档:架构
  8. 演练:节点
  9. 升级:滚动
  10. 评估:场景

15. 参考资料

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