Oracle Flex ASM 详解

Oracle Flex ASM 详解

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


1. 概述

Flex ASM 是 12c 引入的 ASM 架构[1]:

详细见:Oracle ASM 高可用详解Oracle Flex Cluster 详解


2. 传统 vs Flex ASM

2.1 传统

- 每节点 ASM
- 紧密耦合
- ASM 故障 = 节点故障

2.2 Flex

- ASM 客户端/服务端
- 部分节点运行 ASM
- ASM 冗余

2.3 优势

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

3. 架构

3.1 ASM 服务端

- Hub 节点
- 运行 ASM
- 少数

3.2 ASM 客户端

- Leaf 节点
- 连接 Hub ASM
- 多数

3.3 通信

- ASM 网络
- Flex ASM
- 连接

4. 配置

4.1 模式

# 查看
asmcmd showclustermode

4.2 转换

# 传统 -> Flex
asmcmd setclustermode flex

4.3 ASM 网络

# 配置 ASM 网络
$GI_HOME/crs/config/config.pl

5. ASM 冗余

5.1 多 ASM 实例

- Hub 节点
- 多 ASM
- 冗余

5.2 故障

- ASM 故障
- 客户端切换
- 透明

5.3 最少

- 最少 1 个 ASM
- 推荐 3 个
- 冗余

6. 客户端连接

6.1 连接

- Leaf 连接 Hub ASM
- 透明
- 自动

6.2 切换

- ASM 故障
- 客户端切换其他 ASM
- 透明

6.3 监控

# 客户端
sqlplus / as sysasm
SELECT * FROM v$asm_client;

7. Disk Group

7.1 共享

- Hub ASM 管理
- Leaf 通过 Hub 访问
- 共享

7.2 访问

- 间接访问
- 通过 ASM
- 透明

7.3 管理

- Hub 管理
- 集中
- 简化

8. 监控

8.1 ASM 状态

srvctl status asm
asmcmd showclustermode

8.2 客户端

SELECT * FROM v$asm_client;

8.3 Disk Group

SELECT group_number, name, state FROM v$asm_diskgroup;

9. 故障场景

9.1 ASM 故障

- 一个 ASM 故障
- 客户端切换
- 透明

9.2 Hub 故障

- Hub 节点故障
- ASM 切换
- 其他 Hub 接管

9.3 网络故障

- ASM 网络故障
- 客户端影响
- 监控

10. 应用场景

10.1 Flex Cluster

- Hub-Leaf
- Flex ASM
- 大规模

10.2 高可用

- ASM 冗余
- 故障切换
- 高可用

10.3 简化

- 少数 ASM
- 集中管理
- 简化

11. 限制

11.1 兼容性

- 12c+
- 检查
- 评估

11.2 网络

- ASM 网络
- 带宽
- 监控

11.3 复杂

- 配置
- 管理
- 评估

12. 常见问题

12.1 ASM 不可达

- Hub 故障
- 切换
- 检查

12.2 客户端连接失败

- ASM 网络
- 检查
- 修复

12.3 性能

- 间接访问
- 监控
- 优化

13. 最佳实践

  1. 多 ASM:3 个
  2. Hub 冗余:3+
  3. ASM 网络:独立
  4. 监控:状态
  5. 测试:故障
  6. 文档:配置
  7. Flex Cluster:配合
  8. 演练:ASM 故障
  9. 优化:网络
  10. 评估:场景

14. 参考资料

[1] Oracle Automatic Storage Management Administrator’s Guide 19c, “Flex ASM” https://docs.oracle.com/en/database/oracle/oracle-database/19/ostmg/