Wrayの知识库 Wrayの知识库
首页
  • Java 基础
  • Java 集合
  • Java 并发
  • Java IO
  • JVM
  • Spring Framework
  • Spring Boot
  • Spring Cloud
  • Spring Security
  • MySQL
  • Redis
  • 计算机基础
  • 操作系统原理
  • Linux
  • MacOS
  • Windows
  • 系统工程与研究专题
  • AI 基础
  • 大模型基础
  • Prompt 工程
  • RAG 检索增强生成
  • Agent 智能体
  • AI 应用开发
  • AI 工程化
  • AI 安全与治理
  • AI 面试与设计题
  • 纸质书
  • 电子书
  • 学习课程
疑难杂症
GitHub (opens new window)
首页
  • Java 基础
  • Java 集合
  • Java 并发
  • Java IO
  • JVM
  • Spring Framework
  • Spring Boot
  • Spring Cloud
  • Spring Security
  • MySQL
  • Redis
  • 计算机基础
  • 操作系统原理
  • Linux
  • MacOS
  • Windows
  • 系统工程与研究专题
  • AI 基础
  • 大模型基础
  • Prompt 工程
  • RAG 检索增强生成
  • Agent 智能体
  • AI 应用开发
  • AI 工程化
  • AI 安全与治理
  • AI 面试与设计题
  • 纸质书
  • 电子书
  • 学习课程
疑难杂症
GitHub (opens new window)
  • 数据库概述
  • MySQL

  • Redis

  • Oracle

    • Oracle概述
    • Oracle版本与部署选型
    • Oracle安装配置与客户端工具
    • Oracle体系结构与实例数据库
    • Oracle内存结构SGA与PGA
    • Oracle进程与后台任务
    • Oracle存储结构与表空间
    • Oracle数据类型与字符集
    • Oracle Schema对象与数据建模
    • SQL基础与Oracle语法特性
    • PLSQL基础与包过程函数
    • Oracle事务与一致性读
    • Oracle锁闩锁与并发控制
    • Undo Redo与归档日志
    • Oracle索引结构与设计
    • 执行计划与DBMS_XPLAN
    • 优化器统计信息与SQL调优
    • AWR ASH与性能诊断
    • Oracle等待事件与故障排查
    • RMAN备份恢复与闪回技术
    • Data Guard与灾备架构
    • RAC集群与服务高可用
    • ASM存储与文件管理
      • 1. 学习目标与定位
      • 2. 核心概念总览
      • 3. 底层原理详解
      • 4. 关键机制拆解
        • 4.1. ASM 实例和磁盘组
        • 4.2. Failure Group 与冗余
        • 4.3. Rebalance 与性能影响
        • 4.4. ASMCA、ASMCMD 与日常管理
      • 5. 功能模块细节补充
        • 5.1. ASM Instance
        • 5.2. Disk Group
        • 5.3. Allocation Unit
        • 5.4. Failure Group
        • 5.5. Normal Redundancy
        • 5.6. External Redundancy
        • 5.7. Rebalance
        • 5.8. ASMCA
        • 5.9. ASMCMD
      • 6. 开发人员重点提醒
      • 7. 运维人员重点提醒
      • 8. 典型问题与排查
      • 9. 实践建议与检查清单
      • 10. 阶段小结
    • Multitenant CDB与PDB
    • 分区表与VLDB实践
    • 数据泵SQLLoader与数据迁移
    • Oracle安全审计与权限治理
    • Oracle开发连接池与JDBC实践
    • JSON向量与多模型能力
    • Oracle运维规范与面试设计题
目录

ASM存储与文件管理

ASM 是 Oracle 推荐的数据库文件管理与卷管理能力,负责磁盘组、条带化、镜像、再平衡和文件命名。它把数据库语义带入存储层,降低文件管理复杂度。

# 1. 学习目标与定位

维度 内容
难度层级 运维进阶
核心目标 从底层运行链路理解本篇主题,能把概念、SQL、指标、故障和工程取舍连起来
适合人群 开发人员理解存储能力对数据库延迟的影响;运维人员掌握 ASM 磁盘组、冗余、再平衡和故障处理。

# 2. 核心概念总览

ASM存储与文件管理
├─ ASM Instance
├─ Disk Group
├─ Allocation Unit
├─ Failure Group
├─ Normal Redundancy
├─ External Redundancy
├─ Rebalance
├─ ASMCA
└─ ASMCMD

这张图只用来定位本章范围。正文不会把每个词机械拆成固定问答,而是按 Oracle 的真实运行机制解释它们之间如何协作、在哪里影响开发、在哪里影响运维。

# 3. 底层原理详解

ASM 通过独立 ASM 实例管理磁盘组,把数据库文件分布到多个磁盘上,并提供条带化和镜像能力。数据库不再直接管理大量文件路径,而是使用 ASM 文件名和磁盘组。

ASM 冗余策略决定数据保护边界。External Redundancy 依赖外部存储保护,Normal/High Redundancy 依赖 ASM failure group 做镜像。选错冗余会造成成本浪费或保护不足。

磁盘添加、删除或故障后,ASM 通过 rebalance 重新分布 Allocation Unit。Rebalance 会消耗 IO,功率设置影响恢复速度和业务性能。

# 4. 关键机制拆解

# 4.1. ASM 实例和磁盘组

ASM 实例不存放业务数据字典,它管理磁盘组元数据并为数据库实例提供文件服务。磁盘组由多个 ASM disk 组成,文件按 AU 分布在磁盘上。

运维人员要关注磁盘组容量、离线磁盘、兼容性属性和元数据备份。ASM 正常不代表数据库文件一定健康,但 ASM 异常会直接影响数据库可用性。

# 4.2. Failure Group 与冗余

Failure Group 表示共同故障域,例如同一存储柜、控制器或机架。Normal Redundancy 会在不同 Failure Group 保存镜像,High Redundancy 保存更多副本。

如果 Failure Group 设计不符合真实物理故障域,镜像可能没有意义。存储设计要和硬件拓扑一起评审。

# 4.3. Rebalance 与性能影响

添加、删除磁盘或磁盘恢复时,ASM Rebalance 移动 AU 以恢复均衡。Rebalance power 越高,恢复越快,但对业务 IO 影响可能越大。

维护窗口内可以提高 power 加速,业务高峰应控制影响。不要在不了解负载的情况下同时做大规模数据加载和 ASM 重平衡。

# 4.4. ASMCA、ASMCMD 与日常管理

ASMCA 适合图形化配置,ASMCMD 适合命令行巡检和脚本化。常见操作包括查看磁盘组、文件、别名、模板、磁盘状态和容量。

ASM 文件误删风险极高。生产操作必须确认数据库文件归属、备份状态和命令目标,避免把存储层操作当普通文件操作。

# 5. 功能模块细节补充

本节围绕概念图中的模块逐个补充底层细节,重点讲它们在 Oracle 运行链路中的位置和相互关系,而不是按固定角色模板拆分。

# 5.1. ASM Instance

ASM Instance 是实例与数据库协作链路中的组成部分。实例侧负责运行时内存、进程和调度,数据库侧负责控制文件、数据文件和日志文件;该模块的异常通常会反映到启动阶段、后台进程等待、告警日志或恢复流程中。

# 5.2. Disk Group

Disk Group 处在逻辑对象和物理文件之间。Oracle 最终以数据块读写,向上组织为区、段、表空间,向下落到数据文件或 ASM 磁盘组;空间不足、热点块、坏块和 IO 延迟都要从这个层级关系里定位。

# 5.3. Allocation Unit

Allocation Unit 处在逻辑对象和物理文件之间。Oracle 最终以数据块读写,向上组织为区、段、表空间,向下落到数据文件或 ASM 磁盘组;空间不足、热点块、坏块和 IO 延迟都要从这个层级关系里定位。

# 5.4. Failure Group

Failure Group 处在逻辑对象和物理文件之间。Oracle 最终以数据块读写,向上组织为区、段、表空间,向下落到数据文件或 ASM 磁盘组;空间不足、热点块、坏块和 IO 延迟都要从这个层级关系里定位。

# 5.5. Normal Redundancy

Normal Redundancy 处在逻辑对象和物理文件之间。Oracle 最终以数据块读写,向上组织为区、段、表空间,向下落到数据文件或 ASM 磁盘组;空间不足、热点块、坏块和 IO 延迟都要从这个层级关系里定位。

# 5.6. External Redundancy

External Redundancy 处在逻辑对象和物理文件之间。Oracle 最终以数据块读写,向上组织为区、段、表空间,向下落到数据文件或 ASM 磁盘组;空间不足、热点块、坏块和 IO 延迟都要从这个层级关系里定位。

# 5.7. Rebalance

Rebalance 处在逻辑对象和物理文件之间。Oracle 最终以数据块读写,向上组织为区、段、表空间,向下落到数据文件或 ASM 磁盘组;空间不足、热点块、坏块和 IO 延迟都要从这个层级关系里定位。

# 5.8. ASMCA

ASMCA 处在逻辑对象和物理文件之间。Oracle 最终以数据块读写,向上组织为区、段、表空间,向下落到数据文件或 ASM 磁盘组;空间不足、热点块、坏块和 IO 延迟都要从这个层级关系里定位。

# 5.9. ASMCMD

ASMCMD 处在逻辑对象和物理文件之间。Oracle 最终以数据块读写,向上组织为区、段、表空间,向下落到数据文件或 ASM 磁盘组;空间不足、热点块、坏块和 IO 延迟都要从这个层级关系里定位。

# 6. 开发人员重点提醒

  • 理解大批量 IO 会影响 ASM 和存储延迟,批处理需避开维护窗口。
  • 性能问题反馈要提供 SQL 时间段,方便与 ASM rebalance 或存储告警关联。
  • 不要假设存储无限快,SQL 设计仍然是第一道防线。

# 7. 运维人员重点提醒

  • 监控磁盘组容量、rebalance、offline disk、IO 延迟和 ASM alert log。
  • 冗余策略要和真实故障域匹配。
  • ASM 维护操作要有回退和备份确认。

# 8. 典型问题与排查

  • 磁盘组满:定位文件类型、归档、备份和数据文件增长。
  • Rebalance 影响业务:调整 power 并观察 IO 等待。
  • 磁盘离线:检查硬件、路径、多路径和 failure group。

# 9. 实践建议与检查清单

  • 磁盘组容量告警可用
  • Failure Group 设计正确
  • rebalance 策略明确
  • ASMCMD 巡检脚本可用
  • ASM 元数据和数据库备份完整

# 10. 阶段小结

本篇的学习重点不是记住术语,而是能把底层机制、业务语义和生产证据连起来。读完本篇后,应该能解释关键组件如何协作、常见问题为什么发生、开发侧如何避免制造风险、运维侧如何用指标和日志把问题定位到具体链路。

上次更新: 2026/06/25, 15:30:11
RAC集群与服务高可用
Multitenant CDB与PDB

← RAC集群与服务高可用 Multitenant CDB与PDB→

Copyright © 2023-2026 Wray | 鄂ICP备2024050235号-1
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式