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

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


1. 核心作用

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

  • 显示磁盘的物理属性和当前状态
  • 监控磁盘 I/O 性能和错误统计
  • 跟踪磁盘与磁盘组的关联关系
  • 提供磁盘空间利用率数据
  • 检测磁盘故障和性能瓶颈
  • 支持存储配置决策

📌 定位
ASM 存储系统的"磁盘健康检查仪",提供物理存储介质的全面视图。


2. 使用场景

  1. 磁盘状态监控:实时检测磁盘 ONLINE/OFFLINE 状态
  2. 性能调优:识别 I/O 热点磁盘
  3. 容量规划:分析磁盘空间利用率
  4. 故障诊断:排查磁盘错误和故障
  5. 存储扩展:添加新磁盘前的候选盘检查
  6. 冗余验证:检查故障组配置
  7. 迁移准备:获取磁盘路径和标识信息

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

列名数据类型说明
GROUP_NUMBERNUMBER所属磁盘组编号(0=未分配)
DISK_NUMBERNUMBER磁盘在组内的编号(唯一标识)
INCARNATIONNUMBER磁盘版本号(磁盘被重新加入时递增)
MOUNT_STATUSVARCHAR2(7)挂载状态:CACHED/OPENED
HEADER_STATUSVARCHAR2(8)磁盘头状态
MEMBER(正常)
CANDIDATE(候选)
FORMER(已移除)
PROVISIONED(预配置)
MODE_STATUSVARCHAR2(11)访问模式:ONLINE/OFFLINE
STATEVARCHAR2(7)运行状态
NORMAL
SYNCING(同步中)
DROPPING(移除中)
REDUNDANCYVARCHAR2(9)冗余类型:EXTERN/NORMAL/HIGH
LIBRARYVARCHAR2(15)存储库名称(ASMLIB 使用)
TOTAL_MBNUMBER磁盘总容量(MB)
FREE_MBNUMBER可用空间(MB)
NAMEVARCHAR2(30)磁盘名称(用户定义或自动生成)
PATHVARCHAR2(4000)操作系统设备路径
PRODUCTVARCHAR2(30)磁盘厂商信息
CREATE_DATEDATE创建时间
MOUNT_DATEDATE最后挂载时间
REPAIR_TIMERNUMBER磁盘修复倒计时(秒)
FAILGROUPVARCHAR2(30)所属故障组名称
SECTOR_SIZENUMBER物理扇区大小(字节)
BLOCK_SIZENUMBER逻辑块大小(字节)
READ_TIMENUMBER累计读操作时间(厘秒)
WRITE_TIMENUMBER累计写操作时间(厘秒)
BYTES_READNUMBER读取总字节数
BYTES_WRITTENNUMBER写入总字节数
READ_ERRORSNUMBER读错误次数
WRITE_ERRORSNUMBER写错误次数

4. 相关视图与基表

相关视图
视图说明
V$ASM_DISK_STAT磁盘统计信息(性能开销低)
V$ASM_DISKGROUP磁盘组信息
V$ASM_OPERATION磁盘操作进度(如 rebalance)
GV$ASM_DISKRAC 环境的全局视图
V$ASM_ATTRIBUTE磁盘属性配置
基表(X$表)
  • X$KFDKV$ASM_DISK 的底层结构
    -- 查看基表结构(仅供诊断)
    SELECT * 
    FROM X$KFDK 
    WHERE NUMBER_KFDK = 1;  -- 磁盘编号1
    

5. 核心原理

磁盘管理机制
扫描
读取头
操作系统设备
ASM实例
物理磁盘
磁盘头元数据
填充视图
关键技术细节
  1. 磁盘头结构

    • 前 4K 包含 ASM 元数据
    • 存储:磁盘组号、磁盘号、AU 大小、时间戳
    kfed read /dev/sdb1 | grep -E 'kfbh.type|grpnum|disknum'
    
  2. 状态转换

    • CANDIDATEMEMBERALTER DISKGROUP ADD DISK
    • MEMBERFORMERALTER DISKGROUP DROP DISK
    • OFFLINEONLINE:自动修复或手动操作
  3. I/O 统计

    • 每 3 秒更新一次性能计数器
    • 基于 ksfd 内核模块收集数据
  4. 故障处理

    • OFFLINE 磁盘触发 REPAIR_TIMER 倒计时(默认 3.6h)
    • 计时器归零前未修复则自动 drop

6. 常用 SQL 查询与操作

(1) 查看所有磁盘基本信息
SELECT name, path, header_status, state, total_mb, free_mb
FROM v$asm_disk;
(2) 检查故障磁盘
SELECT path, header_status, state, mount_status, repair_timer
FROM v$asm_disk
WHERE state != 'NORMAL' 
   OR header_status NOT IN ('MEMBER', 'CANDIDATE');
(3) 分析磁盘 I/O 性能
SELECT name, 
       (read_time + write_time) AS total_time,
       ROUND(BYTES_READ/1024/1024) AS read_mb,
       ROUND(BYTES_WRITTEN/1024/1024) AS write_mb,
       read_errors + write_errors AS total_errors
FROM v$asm_disk_stat
ORDER BY total_time DESC;
(4) 查找候选磁盘
SELECT path, total_mb, product
FROM v$asm_disk
WHERE header_status = 'CANDIDATE';
(5) 检查磁盘空间利用率
SELECT d.name, 
       d.total_mb,
       d.free_mb,
       ROUND((d.total_mb - d.free_mb) / d.total_mb * 100, 2) AS used_pct,
       g.name AS diskgroup
FROM v$asm_disk d
JOIN v$asm_diskgroup g ON d.group_number = g.group_number;
(6) 验证故障组配置
SELECT failgroup, 
       COUNT(*) AS disks,
       SUM(total_mb) AS total_size
FROM v$asm_disk
WHERE group_number = (SELECT group_number 
                      FROM v$asm_diskgroup 
                      WHERE name = 'DATA')
GROUP BY failgroup;
(7) 添加新磁盘
ALTER DISKGROUP DATA ADD DISK 
  '/dev/sdc1' NAME DATA_003,
  '/dev/sdd1' NAME DATA_004;
(8) 修复离线磁盘
ALTER DISKGROUP DATA ONLINE DISK DATA_002;
(9) 移除故障磁盘
ALTER DISKGROUP DATA DROP DISK DATA_005 FORCE;
(10) 检查 4K 扇区磁盘
SELECT name, path, sector_size
FROM v$asm_disk
WHERE sector_size = 4096;  -- 4K 扇区磁盘

总结

  • 核心作用:提供 ASM 物理磁盘的实时状态和性能指标
  • 关键字段
    • HEADER_STATUS:磁盘成员状态
    • STATE:运行状态
    • PATH:物理设备路径
    • TOTAL_MB/FREE_MB:空间利用率
  • 运维价值
    性能问题
    分析I/O统计
    容量不足
    检查FREE_MB
    磁盘故障
    监控STATE变化
    扩展存储
    查找CANDIDATE磁盘
  • 最佳实践
    • 定期监控 READ_ERRORS/WRITE_ERRORS
    • 确保 REPAIR_TIMER > 0 的磁盘及时修复
    • 使用 V$ASM_DISK_STAT 降低性能开销
    • 为磁盘命名(NAME)提高可管理性
  • 注意事项
    • V$ASM_DISK 查询会访问磁盘头,适度使用
    • RAC 环境中磁盘状态在所有节点一致
    • 磁盘路径变更需重新扫描:ALTER SYSTEM SCAN DISKS
    • ASMLIB 磁盘显示 PATHORCL:磁盘名

⚠️ 关键警告

  1. 强制 DROP DISK 可能导致数据丢失
  2. 混合 512e/4Kn 扇区磁盘需统一配置
  3. 超过 DISK_REPAIR_TIME 的离线磁盘会自动移除

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值