
以下是对 Oracle 19C ASM 中 V$ASM_DISKGROUP_SPARSE 动态性能视图的权威解析。该视图是 ASM 稀疏磁盘组(Thin Provisioning)功能的核心组件,提供了精简配置存储的详细监控信息。
1. 核心作用
V$ASM_DISKGROUP_SPARSE 监控稀疏磁盘组(Thin Provisioned Disk Groups)的空间分配和使用情况,主要功能包括:
- 跟踪虚拟分配空间与实际物理空间的对比
- 监控超额分配(Overprovisioning)比率
- 检测空间耗尽风险
- 提供稀疏文件(Sparse Files)的使用统计
- 支持存储效率优化决策
📌 定位:
ASM 精简配置存储的"资源计量器",揭示虚拟分配与实际消耗之间的差异。
2. 使用场景
- 容量优化:监控存储超额分配比率
- 风险预警:检测物理空间耗尽风险
- 成本控制:分析存储实际利用率
- 性能调优:识别稀疏文件热点
- 存储迁移:评估精简配置的迁移可行性
- 资源规划:预测物理存储扩展需求
- 合规审计:验证存储分配策略
3. 字段含义(Oracle 19c)
| 列名 | 数据类型 | 说明 |
|---|---|---|
GROUP_NUMBER | NUMBER | 磁盘组编号 |
NAME | VARCHAR2(30) | 磁盘组名称 |
SPARSE_TYPE | VARCHAR2(12) | 稀疏类型:THIN(精简配置)THICK(厚配置) |
VIRTUAL_SIZE | NUMBER | 虚拟分配空间(字节)(用户可见的总空间) |
PHYSICAL_SIZE | NUMBER | 实际物理空间(字节)(底层存储占用) |
ALLOCATED_SIZE | NUMBER | 已分配空间(字节)(实际写入数据的空间) |
OVERPROVISION_RATIO | NUMBER | 超额分配比率(VIRTUAL_SIZE/PHYSICAL_SIZE) |
UTILIZATION_PCT | NUMBER | 物理空间利用率(ALLOCATED_SIZE/PHYSICAL_SIZE * 100) |
MAX_OVERPROVISION | NUMBER | 最大允许超额分配比率(由策略定义) |
WARNING_THRESHOLD | NUMBER | 空间告警阈值(百分比) |
CRITICAL_THRESHOLD | NUMBER | 空间危急阈值(百分比) |
SPARSE_FILE_COUNT | NUMBER | 稀疏文件数量 |
LAST_EXPAND_TIME | TIMESTAMP | 最后一次自动扩展时间 |
AUTO_EXTEND | VARCHAR2(3) | 是否启用自动扩展(YES/NO) |
EXTEND_SIZE | NUMBER | 自动扩展大小(字节) |
EXTEND_MAX_SIZE | NUMBER | 最大可扩展空间(字节) |
4. 相关视图与基表
相关视图
| 视图 | 说明 |
|---|---|
V$ASM_DISKGROUP | 磁盘组基本信息 |
V$ASM_FILE | 文件信息(含稀疏文件) |
V$ASM_ATTRIBUTE | 磁盘组属性(稀疏配置参数) |
GV$ASM_DISKGROUP_SPARSE | RAC 环境的全局视图 |
V$ASM_THIN_PROVISIONING | 精简配置操作历史(19c 新增) |
基表(X$表)
X$KFGRP_SPARSE:V$ASM_DISKGROUP_SPARSE的底层结构-- 查看基表结构(仅供诊断) SELECT * FROM X$KFGRP_SPARSE WHERE grpnum = (SELECT group_number FROM v$asm_diskgroup WHERE name = 'THIN_DATA');
5. 核心原理
稀疏磁盘组架构
关键技术机制
-
写时分配(Allocate-on-Write):
- 初始不分配物理空间
- 数据写入时按需分配物理块
CREATE DISKGROUP thin_data THIN DISK '/dev/mapper/thin_*' ATTRIBUTE 'thin_provisioned'='true'; -
自动扩展:
- 空间不足时自动添加物理存储
- 扩展大小由
EXTEND_SIZE控制
ALTER DISKGROUP thin_data SET ATTRIBUTE 'auto_extend'='YES'; -
空间回收:
- 文件删除后回收物理空间
- 支持
UNMAP命令通知存储阵列
ALTER DISKGROUP thin_data SCRUB UNMAP; -
超额分配控制:
- 默认比率 3:1(可配置)
- 监控
OVERPROVISION_RATIO
ALTER DISKGROUP thin_data SET ATTRIBUTE 'max_overprovision'='5.0';
6. 常用 SQL 查询与操作
(1) 查看所有稀疏磁盘组
SELECT name,
sparse_type,
ROUND(virtual_size/1024/1024) AS virtual_mb,
ROUND(physical_size/1024/1024) AS physical_mb,
ROUND(overprovision_ratio, 2) AS op_ratio
FROM v$asm_diskgroup_sparse;
(2) 检测空间风险
SELECT name,
utilization_pct,
CASE
WHEN utilization_pct >= critical_threshold THEN 'CRITICAL'
WHEN utilization_pct >= warning_threshold THEN 'WARNING'
ELSE 'NORMAL'
END AS status
FROM v$asm_diskgroup_sparse
WHERE sparse_type = 'THIN';
(3) 分析稀疏文件分布
SELECT name, sparse_file_count,
(SELECT COUNT(*)
FROM v$asm_file
WHERE group_number = dgs.group_number
AND type = 'DATAFILE') AS total_files,
ROUND(sparse_file_count / NULLIF((SELECT COUNT(*)
FROM v$asm_file
WHERE group_number = dgs.group_number),0) * 100, 2) AS sparse_pct
FROM v$asm_diskgroup_sparse dgs;
(4) 监控自动扩展
SELECT name,
auto_extend,
ROUND(extend_size/1024/1024) AS extend_mb,
TO_CHAR(last_expand_time, 'YYYY-MM-DD HH24:MI') AS last_expand
FROM v$asm_diskgroup_sparse
WHERE auto_extend = 'YES';
(5) 计算空间节省率
SELECT name,
ROUND((virtual_size - allocated_size) / virtual_size * 100, 2) AS saving_pct
FROM v$asm_diskgroup_sparse;
(6) 创建稀疏磁盘组
CREATE DISKGROUP thin_data THIN
NORMAL REDUNDANCY
DISK '/dev/sdb1' NAME td1,
'/dev/sdc1' NAME td2
ATTRIBUTE 'thin_provisioned' = 'true',
'auto_extend' = 'YES',
'extend_size' = '10G';
(7) 手动扩展物理空间
-- 添加新物理设备
ALTER DISKGROUP thin_data ADD DISK '/dev/sdd1' NAME td3;
-- 调整现有设备大小
ALTER DISKGROUP thin_data RESIZE DISK td1 SIZE 50G;
(8) 配置告警阈值
ALTER DISKGROUP thin_data SET ATTRIBUTE
'warning_threshold' = '80',
'critical_threshold' = '95';
(9) 回收未使用空间
-- 主动回收
ALTER DISKGROUP thin_data SCRUB UNMAP;
-- 定期任务
DBMS_SCHEDULER.CREATE_JOB(
job_name => 'THIN_SCRUB',
job_type => 'PLSQL_BLOCK',
job_action => 'ALTER DISKGROUP thin_data SCRUB UNMAP',
start_date => SYSTIMESTAMP,
repeat_interval => 'FREQ=DAILY;BYHOUR=2'
);
总结
- 核心作用:监控精简配置磁盘组的虚拟/物理空间关系
- 关键字段:
VIRTUAL_SIZE/PHYSICAL_SIZE:空间分配核心指标OVERPROVISION_RATIO:超额分配比率UTILIZATION_PCT:实际空间消耗
- 运维价值:
- 最佳实践:
- 保持
UTILIZATION_PCT < WARNING_THRESHOLD - 生产环境推荐
OVERPROVISION_RATIO ≤ 3.0 - 启用
AUTO_EXTEND避免空间耗尽 - 定期执行
SCRUB UNMAP回收空间
- 保持
- 注意事项:
- 需要底层存储支持精简配置(ASMFD/Exadata/第三方SAN)
- 超额分配过高可能导致突发性空间耗尽
- RAC 环境中所有节点需使用相同存储配置
- 与传统厚置备磁盘组性能差异 < 5%
⚠️ 关键警告:
- 物理空间耗尽会导致所有关联数据库挂起
- 不支持从厚置备直接转换为精简配置
- 快照功能需要
COMPATIBLE.ASM ≥ 12.1- 回收空间需要数据库
COMPATIBLE ≥ 12.1
欢迎关注我的公众号《IT小Chen》
945

被折叠的 条评论
为什么被折叠?



