
以下是对 Oracle 19C ASM 中 V$ASM_DISKGROUP 动态性能视图的权威解析。该视图是 ASM 存储管理的核心组件,提供了磁盘组级别的全局视图。
1. 核心作用
V$ASM_DISKGROUP 展示 ASM 实例管理的所有磁盘组的实时状态和存储指标,主要功能包括:
- 显示磁盘组的配置属性和空间利用率
- 监控磁盘组的冗余和故障保护状态
- 跟踪磁盘组的操作状态(挂载/卸载)
- 提供性能相关的负载统计
- 管理磁盘组的配额和模板信息
- 支持存储容量规划和性能优化
📌 定位:
ASM 存储系统的"控制面板",提供存储池级别的全局视图。
2. 使用场景
- 容量管理:监控磁盘组空间使用率
- 性能分析:识别负载高的磁盘组
- 配置验证:检查冗余类型和兼容性设置
- 故障诊断:检测不平衡或降级的磁盘组
- 存储扩展:评估添加新磁盘的需求
- 备份恢复:确定可恢复空间
- 多租户管理:管理文件组配额
3. 字段含义(Oracle 19c 官方文档)
| 列名 | 数据类型 | 说明 |
|---|---|---|
GROUP_NUMBER | NUMBER | 磁盘组唯一编号 |
NAME | VARCHAR2(30) | 磁盘组名称 |
SECTOR_SIZE | NUMBER | 物理扇区大小(字节) |
BLOCK_SIZE | NUMBER | 分配单元大小(AU,字节) |
ALLOCATION_UNIT_SIZE | NUMBER | 同 BLOCK_SIZE |
STATE | VARCHAR2(11) | 磁盘组状态:CONNECTEDMOUNTEDDISMOUNTED |
TYPE | VARCHAR2(7) | 冗余类型:EXTERN/NORMAL/HIGH/FLEX |
TOTAL_MB | NUMBER | 总空间(MB) |
FREE_MB | NUMBER | 可用空间(MB) |
HOT_USED_MB | NUMBER | 热区域已用空间(闪存缓存) |
COLD_USED_MB | NUMBER | 冷区域已用空间 |
REQUIRED_MIRROR_FREE_MB | NUMBER | 完全冗余所需的最小空间 |
USABLE_FILE_MB | NUMBER | 用户可用空间(考虑冗余) |
OFFLINE_DISKS | NUMBER | 离线磁盘数量 |
COMPATIBILITY | VARCHAR2(60) | ASM兼容版本 |
DATABASE_COMPATIBILITY | VARCHAR2(60) | 数据库兼容版本 |
VOTING_FILES | VARCHAR2(7) | 是否包含表决文件:Y/N |
QUORUM_GROUP | VARCHAR2(7) | 是否法定磁盘组:Y/N |
USABLE_TOTAL_SIZE | NUMBER | 用户可用的总空间(含冗余保护) |
LABEL | VARCHAR2(256) | 磁盘组标签(用于云环境) |
MOUNT_STATUS | VARCHAR2(7) | 挂载状态:CACHED/OPENED |
BALANCE_STATUS | VARCHAR2(15) | 平衡状态:BALANCED/UNBALANCED/INPROGRESS |
PERCENT_FULL | NUMBER | 空间使用百分比 |
DG_USED_SPACE | NUMBER | 已用空间(MB) |
DG_FREE_SPACE | NUMBER | 可用空间(MB) |
4. 相关视图与基表
相关视图
| 视图 | 说明 |
|---|---|
V$ASM_DISK | 磁盘详细信息 |
V$ASM_OPERATION | 磁盘组操作进度(如 rebalance) |
V$ASM_ATTRIBUTE | 磁盘组属性配置 |
GV$ASM_DISKGROUP | RAC 环境的全局视图 |
V$ASM_FILE | 磁盘组中的文件信息 |
基表(X$表)
X$KFGRP:V$ASM_DISKGROUP的底层结构-- 查看基表结构(仅供诊断) SELECT * FROM X$KFGRP WHERE NUMBER_KFGRP = 1; -- 磁盘组1
5. 核心原理
磁盘组架构
关键技术机制
-
空间分配:
- 基于 Allocation Units (AU) 分配空间
- AU 大小由
ALLOCATION_UNIT_SIZE定义(默认 1MB/4MB)
CREATE DISKGROUP DATA EXTERNAL REDUNDANCY DISK '/dev/sdb1' ATTRIBUTE 'au_size'='4M'; -
冗余管理:
EXTERN:无冗余(1份数据)NORMAL:双副本(2份数据)HIGH:三副本(3份数据)FLEX:可配置冗余(12.2+)
-
平衡机制:
- 添加/移除磁盘触发自动平衡
- 平衡进度通过
V$ASM_OPERATION监控 - 影响因子:
ASM_POWER_LIMIT(1-11)
-
热冷区域:
- 自动数据分层(18c+)
- 热数据 → 闪存磁盘
- 冷数据 → 机械磁盘
6. 常用 SQL 查询与操作
(1) 查看所有磁盘组摘要
SELECT name,
state,
type,
total_mb,
free_mb,
ROUND((total_mb - free_mb) / total_mb * 100, 2) AS used_pct
FROM v$asm_diskgroup;
(2) 检查空间利用率
SELECT name,
usable_file_mb AS "Usable(MB)",
free_mb AS "Free(MB)",
ROUND((usable_file_mb - free_mb) / usable_file_mb * 100, 2) AS pct_used
FROM v$asm_diskgroup
WHERE state = 'MOUNTED';
(3) 识别不平衡磁盘组
SELECT name, balance_status, offline_disks
FROM v$asm_diskgroup
WHERE balance_status != 'BALANCED';
(4) 验证兼容性设置
SELECT name, compatibility, database_compatibility
FROM v$asm_diskgroup;
(5) 计算真实可用空间
-- 考虑冗余后的真实可用空间
SELECT name,
usable_file_mb AS "Safe Usable",
free_mb AS "Current Free",
required_mirror_free_mb AS "Redundancy Reserve"
FROM v$asm_diskgroup;
(6) 创建新磁盘组
CREATE DISKGROUP DATA NORMAL REDUNDANCY
FAILGROUP controller1 DISK '/dev/sdb1' NAME dsk1,
FAILGROUP controller2 DISK '/dev/sdc1' NAME dsk2
ATTRIBUTE 'au_size'='4M',
'compatible.asm'='19.0',
'compatible.rdbms'='19.0';
(7) 调整磁盘组
-- 添加磁盘
ALTER DISKGROUP DATA ADD DISK '/dev/sdd1' NAME dsk3;
-- 重平衡(手动)
ALTER DISKGROUP DATA REBALANCE POWER 5;
-- 修改属性
ALTER DISKGROUP DATA SET ATTRIBUTE 'compatible.rdbms'='19.0.0.0.0';
(8) 卸载/挂载磁盘组
-- 卸载
ALTER DISKGROUP DATA DISMOUNT;
-- 挂载
ALTER DISKGROUP DATA MOUNT;
(9) 检查表决文件
SELECT name, voting_files
FROM v$asm_diskgroup
WHERE voting_files = 'Y';
(10) 分析分层存储
SELECT name,
hot_used_mb AS "Flash(MB)",
cold_used_mb AS "HDD(MB)",
ROUND(hot_used_mb / (hot_used_mb + cold_used_mb) * 100, 2) AS flash_pct
FROM v$asm_diskgroup;
总结
- 核心作用:提供 ASM 磁盘组的全局状态和空间信息
- 关键字段:
NAME:磁盘组标识STATE:操作状态TYPE:冗余配置FREE_MB/USABLE_FILE_MB:空间指标
- 运维价值:
- 最佳实践:
- 保持
FREE_MB > 20%且USABLE_FILE_MB > 0 - 定期检查
BALANCE_STATUS - 生产环境使用
NORMAL或HIGH冗余 - 设置
compatible.asm和compatible.rdbms参数
- 保持
- 注意事项:
USABLE_FILE_MB为负表示空间不足EXTERN冗余无USABLE_FILE_MB计算- RAC 环境中所有节点显示相同的磁盘组状态
- 卸载磁盘组会断开所有数据库连接
⚠️ 关键警告:
- 空间耗尽可能导致数据库挂起
- 降低兼容性版本不可逆
- 修改
au_size需重建磁盘组- 法定磁盘组(
QUORUM_GROUP)不可用于数据存储
欢迎关注我的公众号《IT小Chen》
1165

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



