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 才是真正可写的空间

相关推荐
朽棘不雕1 小时前
Linux权限
linux
互成1 小时前
加密系统哪款最好用?2026年五款加密系统深度对比测评
运维·网络·安全
minji...1 小时前
Linux 库制作与原理(三)深入动静态链接原理
linux·运维·服务器·c++
CDN3602 小时前
游戏服稳定运行:360CDN SDK 游戏盾实测体验
运维·游戏·网络安全
微学AI2 小时前
一款数据库SQL防火墙:可以拦截99.99%,可以阻止恶意SQL
数据库·sql
bukeyiwanshui2 小时前
Linux实践
linux·运维·服务器
2401_884563242 小时前
Python Lambda(匿名函数):简洁之道
jvm·数据库·python
xlp666hub2 小时前
【Linux驱动实战】:字符设备之ioctl与mutex全解析
linux·面试
守望时空332 小时前
使用NetworkManager替换当前网络管理器
linux·运维