面试宝典:介绍下Oracle数据库动态性能视图 V$ASM_DISKGROUP

在这里插入图片描述
以下是对 Oracle 19C ASM 中 V$ASM_DISKGROUP 动态性能视图的权威解析。该视图是 ASM 存储管理的核心组件,提供了磁盘组级别的全局视图。


1. 核心作用

V$ASM_DISKGROUP 展示 ASM 实例管理的所有磁盘组的实时状态和存储指标,主要功能包括:

  • 显示磁盘组的配置属性和空间利用率
  • 监控磁盘组的冗余和故障保护状态
  • 跟踪磁盘组的操作状态(挂载/卸载)
  • 提供性能相关的负载统计
  • 管理磁盘组的配额和模板信息
  • 支持存储容量规划和性能优化

📌 定位
ASM 存储系统的"控制面板",提供存储池级别的全局视图。


2. 使用场景

  1. 容量管理:监控磁盘组空间使用率
  2. 性能分析:识别负载高的磁盘组
  3. 配置验证:检查冗余类型和兼容性设置
  4. 故障诊断:检测不平衡或降级的磁盘组
  5. 存储扩展:评估添加新磁盘的需求
  6. 备份恢复:确定可恢复空间
  7. 多租户管理:管理文件组配额

3. 字段含义(Oracle 19c 官方文档)

列名数据类型说明
GROUP_NUMBERNUMBER磁盘组唯一编号
NAMEVARCHAR2(30)磁盘组名称
SECTOR_SIZENUMBER物理扇区大小(字节)
BLOCK_SIZENUMBER分配单元大小(AU,字节)
ALLOCATION_UNIT_SIZENUMBER同 BLOCK_SIZE
STATEVARCHAR2(11)磁盘组状态
CONNECTED
MOUNTED
DISMOUNTED
TYPEVARCHAR2(7)冗余类型EXTERN/NORMAL/HIGH/FLEX
TOTAL_MBNUMBER总空间(MB)
FREE_MBNUMBER可用空间(MB)
HOT_USED_MBNUMBER热区域已用空间(闪存缓存)
COLD_USED_MBNUMBER冷区域已用空间
REQUIRED_MIRROR_FREE_MBNUMBER完全冗余所需的最小空间
USABLE_FILE_MBNUMBER用户可用空间(考虑冗余)
OFFLINE_DISKSNUMBER离线磁盘数量
COMPATIBILITYVARCHAR2(60)ASM兼容版本
DATABASE_COMPATIBILITYVARCHAR2(60)数据库兼容版本
VOTING_FILESVARCHAR2(7)是否包含表决文件:Y/N
QUORUM_GROUPVARCHAR2(7)是否法定磁盘组:Y/N
USABLE_TOTAL_SIZENUMBER用户可用的总空间(含冗余保护)
LABELVARCHAR2(256)磁盘组标签(用于云环境)
MOUNT_STATUSVARCHAR2(7)挂载状态:CACHED/OPENED
BALANCE_STATUSVARCHAR2(15)平衡状态BALANCED/UNBALANCED/INPROGRESS
PERCENT_FULLNUMBER空间使用百分比
DG_USED_SPACENUMBER已用空间(MB)
DG_FREE_SPACENUMBER可用空间(MB)

4. 相关视图与基表

相关视图
视图说明
V$ASM_DISK磁盘详细信息
V$ASM_OPERATION磁盘组操作进度(如 rebalance)
V$ASM_ATTRIBUTE磁盘组属性配置
GV$ASM_DISKGROUPRAC 环境的全局视图
V$ASM_FILE磁盘组中的文件信息
基表(X$表)
  • X$KFGRPV$ASM_DISKGROUP 的底层结构
    -- 查看基表结构(仅供诊断)
    SELECT * 
    FROM X$KFGRP 
    WHERE NUMBER_KFGRP = 1;  -- 磁盘组1
    

5. 核心原理

磁盘组架构
包含
包含
包含
提供
ASM实例
磁盘组
磁盘1
磁盘2
磁盘3
文件存储
数据库
关键技术机制
  1. 空间分配

    • 基于 Allocation Units (AU) 分配空间
    • AU 大小由 ALLOCATION_UNIT_SIZE 定义(默认 1MB/4MB)
    CREATE DISKGROUP DATA EXTERNAL REDUNDANCY DISK '/dev/sdb1' ATTRIBUTE 'au_size'='4M';
    
  2. 冗余管理

    • EXTERN:无冗余(1份数据)
    • NORMAL:双副本(2份数据)
    • HIGH:三副本(3份数据)
    • FLEX:可配置冗余(12.2+)
  3. 平衡机制

    • 添加/移除磁盘触发自动平衡
    • 平衡进度通过 V$ASM_OPERATION 监控
    • 影响因子:ASM_POWER_LIMIT(1-11)
  4. 热冷区域

    • 自动数据分层(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
    性能问题
    检查BALANCE_STATUS
    升级准备
    验证COMPATIBILITY
    高可用
    确认VOTING_FILES
  • 最佳实践
    • 保持 FREE_MB > 20%USABLE_FILE_MB > 0
    • 定期检查 BALANCE_STATUS
    • 生产环境使用 NORMALHIGH 冗余
    • 设置 compatible.asmcompatible.rdbms 参数
  • 注意事项
    • USABLE_FILE_MB 为负表示空间不足
    • EXTERN 冗余无 USABLE_FILE_MB 计算
    • RAC 环境中所有节点显示相同的磁盘组状态
    • 卸载磁盘组会断开所有数据库连接

⚠️ 关键警告

  1. 空间耗尽可能导致数据库挂起
  2. 降低兼容性版本不可逆
  3. 修改 au_size 需重建磁盘组
  4. 法定磁盘组(QUORUM_GROUP)不可用于数据存储

欢迎关注我的公众号《IT小Chen

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值