Oracle ASM 高可用详解
Oracle ASM 高可用详解
适用版本:Oracle Database 11g / 12c / 19c / 23ai 文档版本:v1.0 / 2026-07
1. 概述
ASM 提供存储高可用[1]:
详细见:Oracle ASM 架构与 AU 详解、Oracle ASM File Extent 与 Mirroring 详解。
2. ASM 冗余
2.1 External
- 外部 RAID
- ASM 不镜像
- 存储 RAID
2.2 Normal
- 2-way mirror
- 容忍 1 盘故障
- 默认
2.3 High
- 3-way mirror
- 容忍 2 盘故障
- 高可用
2.4 Flex
- 12c+
- 灵活
- 文件级
3. Failure Group
3.1 概念
- 一组磁盘
- 同时故障
- 隔离
3.2 配置
CREATE DISKGROUP data NORMAL REDUNDANCY
FAILUREGROUP fg1 DISK '/dev/sdb'
FAILUREGROUP fg2 DISK '/dev/sdc';
3.3 作用
- 镜像跨 FG
- 容忍 FG 故障
- 高可用
4. 磁盘故障
4.1 检测
- ASM 检测
- 磁盘 offline
- 告警
4.2 Rebalance
- 自动重建
- 跨 FG
- 恢复冗余
4.3 替换
ALTER DISKGROUP data DROP DISK disk1;
ALTER DISKGROUP data ADD DISK '/dev/sdd';
-- 或
ALTER DISKGROUP data REPLACE DISK disk1 WITH '/dev/sdd';
5. Flex ASM
5.1 架构
- ASM 客户端/服务端
- Flex Cluster
- 冗余
5.2 优势
- ASM 冗余
- 不每节点 ASM
- 高可用
5.3 配置
asmcmd showclustermode
-- Flex ASM mode
6. ASM Cluster
6.1 多 ASM 实例
- 每节点一个 ASM
- 共享磁盘
- 冗余
6.2 故障
- ASM 故障
- 客户端切换
- 透明
6.3 监控
srvctl status asm
crsctl stat res -t | grep asm
7. Voting Disk
7.1 作用
- 集群仲裁
- 节点投票
- Split-brain 防护
7.2 冗余
- Normal:3 个
- High:5 个
- 跨 FG
7.3 故障
- 少数故障:继续
- 多数故障:集群停
- 监控
8. OCR
8.1 作用
- 集群配置
- 资源定义
- 管理
8.2 冗余
- Normal:3 个
- 跨 FG
- 备份
8.3 恢复
ocrconfig -restore /u01/ocr.bak
9. ASM 网络
9.1 ASM 网络
- 12c+
- 独立网络
- Flex ASM
9.2 冗余
- 多网卡
- HAIP
- 高可用
9.3 监控
ifconfig -a
crsctl stat res -t | grep -E 'haip|asm'
10. ASM Filter Driver
10.1 ASMFD
- 12c+
- 过滤驱动
- 设备管理
10.2 优势
- 设备持久
- I/O 过滤
- 高可用
10.3 配置
$GI_HOME/bin/asmcmd afd_label DATA /dev/sdb
$GI_HOME/bin/asmcmd afd_state
详细见:Oracle ASMFD ASM Filter Driver。
11. ACFS
11.1 集群文件系统
- ACFS
- 共享文件
- 高可用
11.2 冗余
- ASM 基础
- 镜像
- 高可用
11.3 应用
- 共享文件
- 应用
- 高可用
详细见:Oracle ACFS 部署与使用。
12. 监控
12.1 磁盘
SELECT group_number, disk_number, name,
mount_status, header_status, mode_status, state
FROM v$asm_disk;
12.2 Disk Group
SELECT group_number, name, state, type,
total_mb, free_mb
FROM v$asm_diskgroup;
12.3 操作
SELECT * FROM v$asm_operation;
-- Rebalance 进度
13. 应用场景
13.1 RAC
- 共享存储
- ASM
- 高可用
13.2 Data Guard
- 存储冗余
- ASM
- 灾备
13.3 关键业务
- High Redundancy
- Failure Group
- 高可用
14. 常见问题
14.1 磁盘故障
- 自动重建
- 替换
- 监控
14.2 Disk Group Dismount
- 多数盘故障
- 修复
- Mount
14.3 性能
- I/O
- Rebalance
- 优化
15. 最佳实践
- Normal/High:冗余
- Failure Group:隔离
- 多盘:分散
- 监控:状态
- 备份:OCR
- ASMFD:使用
- Flex ASM:12c+
- 网络:冗余
- 测试:故障
- 文档:配置
16. 参考资料
[1] Oracle Automatic Storage Management Administrator’s Guide 19c https://docs.oracle.com/en/database/oracle/oracle-database/19/ostmg/