Oracle 存储高可用详解
Oracle 存储高可用详解
适用版本:Oracle Database 10g / 11g / 12c / 19c / 23ai 文档版本:v1.0 / 2026-07
1. 概述
存储高可用保证数据持久[1]:
详细见:Oracle ASM 高可用详解、Oracle ASM 架构与 AU 详解。
2. 存储冗余
2.1 RAID
- RAID 0:条带
- RAID 1:镜像
- RAID 5:校验
- RAID 10:条带+镜像
2.2 ASM
- Normal:2-way
- High:3-way
- Flex:灵活
2.3 存储 replication
- 存储 replication
- 异步/同步
- 灾备
3. ASM 冗余
3.1 Normal
- 2-way mirror
- Failure Group
- 容忍 1 FG 故障
3.2 High
- 3-way mirror
- 3 Failure Group
- 容忍 2 FG 故障
3.3 External
- 外部 RAID
- ASM 不镜像
- 存储负责
4. Failure Group
4.1 概念
- 同时故障的磁盘组
- 控制器
- 机柜
- 电源
4.2 配置
CREATE DISKGROUP data NORMAL REDUNDANCY
FAILUREGROUP fg1 DISK '/dev/sdb'
FAILUREGROUP fg2 DISK '/dev/sdc';
4.3 原则
- 跨控制器
- 跨机柜
- 跨电源
- 高可用
5. 多路径
5.1 MPIO
- 多路径 I/O
- 冗余
- 负载均衡
5.2 配置
- /etc/multipath.conf
- 多路径
- 冗余
5.3 优势
- 路径冗余
- 负载均衡
- 高可用
6. 磁盘故障
6.1 检测
- ASM 检测
- 磁盘 offline
- 告警
6.2 Rebalance
- 自动重建
- 跨 FG
- 恢复冗余
6.3 替换
ALTER DISKGROUP data REPLACE DISK disk1 WITH '/dev/sdd';
7. 存储复制
7.1 同步
- 近距离
- 零丢失
- 延迟
7.2 异步
- 远距离
- 可能丢失
- 性能
7.3 混合
- 同城同步
- 异地异步
- 多重
8. 备份
8.1 RMAN
- 本地备份
- 异地备份
- 冗余
8.2 Flash Recovery Area
- FRA
- 备份集中
- 管理
8.3 验证
- 定期验证
- 恢复测试
- 完整
详细见:Oracle RMAN 备份恢复全集。
9. Flashback
9.1 Flashback Database
- 快速恢复
- 误操作
- 闪回
9.2 Flashback Table
- 表级闪回
- 误删除
- 恢复
9.3 Flashback Data Archive
- 历史数据
- 审计
- 合规
10. Data Guard
10.1 灾备
- 异地冗余
- 灾难恢复
- 高可用
10.2 Active Data Guard
- 只读
- 实时
- 读写分离
10.3 Far Sync
- 零丢失
- 远距离
- 高可用
11. 监控
11.1 ASM
SELECT group_number, name, state, type, total_mb, free_mb
FROM v$asm_diskgroup;
11.2 磁盘
SELECT group_number, disk_number, name, mount_status, state
FROM v$asm_disk;
11.3 I/O
SELECT * FROM v$asm_disk_iostat;
12. 应用场景
12.1 关键业务
- High Redundancy
- 多 FG
- 高可用
12.2 灾备
- Data Guard
- 存储复制
- 多重
12.3 混合
- ASM + 存储复制
- 多层
- 高可用
13. 常见问题
13.1 磁盘故障
- 自动重建
- 替换
- 监控
13.2 性能
- I/O 瓶颈
- 优化
- 监控
13.3 空间
- 容量
- 监控
- 扩展
14. 最佳实践
- ASM 冗余:Normal/High
- Failure Group:隔离
- 多路径:MPIO
- 监控:状态
- 备份:冗余
- Flashback:启用
- Data Guard:灾备
- 存储复制:场景
- 测试:故障
- 文档:配置
15. 参考资料
[1] Oracle Automatic Storage Management Administrator’s Guide 19c https://docs.oracle.com/en/database/oracle/oracle-database/19/ostmg/