Oracle ASM磁盘组空间分配与冗余理解

一、冗余级别

ASM 磁盘组空间理解必须先看冗余类型:

  • EXTERN:ASM 不做镜像

  • NORMAL:ASM 双副本

  • HIGH:ASM 三副本

不同冗余级别下,Usable_file_MB 的计算不同。

ASM 磁盘组空间理解必须先看冗余类型,每种冗余对应数据的镜像副本数和容错能力:

  • EXTERN(无冗余)

    ASM 不做任何镜像,数据只写一次。

    ✅ 优点:节省空间

    ⚠️ 缺点:磁盘损坏会导致数据丢失

  • NORMAL(双副本)

    每份数据写两次,保留一份镜像。

    ✅ 优点:可容忍单盘故障

    ⚠️ 缺点:可用空间约为总容量的一半

  • HIGH(三副本)

    每份数据写三次,保留两份镜像。

    ✅ 优点:可容忍两块盘同时故障

    ⚠️ 缺点:可用空间约为总容量的三分之一

总结:冗余不仅影响可用空间,还保证了磁盘故障时数据安全。Usable_file_MB 的计算必须结合冗余级别,否则容易误判可写容量。


二、磁盘组空间结构(以 RECO、HIGH 冗余为例)

复制代码
Total_MB(总容量)= 8.79 TB
├─ 已分配文件占用(Mirror_used_MB)= 4.22 TB
│    └─ 数据文件、归档日志、备份文件、控制文件、SPFILE 等已经占用的空间
└─ Free_MB(逻辑空闲)= 4.82 TB
     ├─ Req_mir_free_MB(冗余预留)= 2.93 TB
     │    └─ 为三倍冗余和未来写入预留的"保险带",平时不占用
     └─ Usable_file_MB(可用空间)= 0.63 TB
          └─ 平时写入归档、备份等可用的实际可写空间

三、重要理解

  1. 已分配文件占用 ≠ 可用空间

    Mirror_used_MB 是历史已写入文件实际占用的空间,不在 Free_MB 中。

  2. Req_mir_free_MB

    • 不是已用空间,而是 ASM 为保证镜像安全预留的底线

    • 平时不会被写入消耗,只有当 Usable_file_MB 用尽才可能使用

  3. Usable_file_MB

    • 当前真正能写入的空间

    • 决定了归档、备份等能继续写入的容量


四、公式(HIGH 冗余)

复制代码
Total_MB = 已分配文件占用 + Free_MB
Usable_file_MB = (Free_MB - Req_mir_free_MB) / 3

代入当前数据:

复制代码
Free_MB         = 4.82 TB
Req_mir_free_MB = 2.93 TB

Usable_file_MB = (4.82 - 2.93) / 3 ≈ 0.63 TB

五、直观示意图

复制代码
Total_MB(8.79 TB)
├─ 已分配文件占用(实际镜像占用)≈ 4.22 TB
└─ Free_MB(逻辑空闲)≈ 4.82 TB
     ├─ Req_mir_free_MB(安全预留)≈ 2.93 TB
     └─ Usable_file_MB(可用空间)≈ 0.63 TB

💡 理解总结

  • 已分配文件占用 4.22 TB,不在 Free_MB 或 Usable_file_MB

  • 冗余预留 2.93 TB 平时不占用,可保证镜像安全

  • Usable_file_MB 0.63 TB 才是真正可写的空间

相关推荐
韶博雅9 小时前
emcc升级
oracle
一叶知秋yyds9 小时前
Ubuntu 虚拟机安装 OpenClaw 完整流程
linux·运维·ubuntu·openclaw
瀚高PG实验室9 小时前
审计策略修改
网络·数据库·瀚高数据库
言慢行善10 小时前
sqlserver模糊查询问题
java·数据库·sqlserver
韶博雅10 小时前
emcc24ai
开发语言·数据库·python
斯普信云原生组10 小时前
Prometheus 环境监控虚机 Redis 方案(生产实操版)
运维·docker·容器
有想法的py工程师10 小时前
PostgreSQL 分区表排序优化:Append Sort 优化为 Merge Append
大数据·数据库·postgresql
迷枫71210 小时前
达梦数据库的体系架构
数据库·oracle·架构
夜晚打字声11 小时前
9(九)Jmeter如何连接数据库
数据库·jmeter·oracle
Chasing__Dreams11 小时前
Mysql--基础知识点--95--为什么避免使用长事务
数据库·mysql