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

在这里插入图片描述
以下是对 Oracle 19C ASM 中 V$ASM_ATTRIBUTE 动态性能视图 的全面解析,涵盖作用、使用场景、字段含义、相关视图、基表、原理及常用 SQL 查询:


1. 作用

V$ASM_ATTRIBUTE 记录 ASM 磁盘组的属性配置,这些属性控制磁盘组的行为和特性:

  • 定义磁盘组的兼容性级别(ASM/RDBMS)
  • 配置磁盘修复时间、分配单元大小等关键参数
  • 设置高级功能(如加密、智能扫描支持)
  • 控制空间管理和冗余策略

📌 本质:ASM 磁盘组的"配置管理中心"


2. 使用场景

  1. 磁盘组创建/修改:查看或验证属性设置(如 COMPATIBLE.ASM
  2. 升级准备:检查兼容性属性是否支持目标版本
  3. 性能调优:调整 au_size(分配单元大小)
  4. 故障排查:验证 disk_repair_time 等容错设置
  5. 安全审计:确认加密、冗余策略是否合规
  6. 存储集成:检查 Exadata 特定属性(如 cell.smart_scan_capable

3. 字段含义(关键列)

列名数据类型说明
GROUP_NUMBERNUMBER磁盘组编号(0 表示默认模板属性)
NAMEVARCHAR2(30)属性名称(不区分大小写)
VALUEVARCHAR2(4000)属性值
SYS_MODIFIABLEVARCHAR2(5)修改权限:
IMMEDIATE(动态修改)
DEFERRED(需重启)
FALSE(不可修改)
核心属性详解
属性名说明示例值重要性
compatible.asmASM 软件最低兼容版本19.0.0.0.0⭐⭐⭐⭐⭐
compatible.rdbms数据库客户端最低兼容版本19.0.0.0.0⭐⭐⭐⭐⭐
au_size分配单元大小(字节),创建磁盘组时设定后不可修改4194304 (4MB)⭐⭐⭐⭐
sector_size磁盘物理扇区大小512, 4096⭐⭐⭐
disk_repair_time磁盘离线后自动删除前的等待时间(单位:分钟)14400 (10天)⭐⭐⭐
redundancy默认冗余策略(仅模板有效)HIGH, NORMAL⭐⭐
stripe_width默认条带宽度(仅模板有效)COARSE, FINE⭐⭐
cell.smart_scan_capable是否支持 Exadata 智能扫描TRUE⭐⭐ (Exadata)
access_control.enabled是否启用 ASM 文件访问控制TRUE⭐⭐

4. 相关视图与基表

相关视图
视图说明
V$ASM_DISKGROUP磁盘组基本信息(名称、状态、空间使用)
V$ASM_DISK磁盘详细信息
V$ASM_ACFSSNAPSHOTSACFS 快照信息(若使用)
基表(X$表)
  • X$KFDPGATTRV$ASM_ATTRIBUTE 的底层内存结构
    -- 查看基表结构(仅供研究)
    SELECT * 
    FROM X$KFDPGATTR 
    WHERE kfdpatgrp = 1;  -- 磁盘组1的属性
    

5. 核心原理

属性管理机制
  1. 继承体系
    • 磁盘组属性 > 默认模板属性(GROUP_NUMBER=0
  2. 持久化存储
    • 属性保存在磁盘组元数据中,ASM 实例启动时加载
  3. 动态修改
    ALTER DISKGROUP DATA SET ATTRIBUTE 'disk_repair_time' = '24h';
    
  4. 兼容性控制
    • compatible.asm:控制 ASM 元数据结构
    • compatible.rdbms:控制数据库可访问性
关键限制
  • au_size 在磁盘组创建后不可修改
  • 提升兼容性版本不可逆(如 19c→21c 可,21c→19c 不可)

6. 常用 SQL 查询示例

(1) 查看所有磁盘组的关键属性
SELECT g.NAME AS diskgroup,
       a1.VALUE AS compatible_asm,
       a2.VALUE AS compatible_rdbms,
       a3.VALUE AS au_size
FROM V$ASM_DISKGROUP g
LEFT JOIN V$ASM_ATTRIBUTE a1 ON g.GROUP_NUMBER = a1.GROUP_NUMBER 
  AND a1.NAME = 'compatible.asm'
LEFT JOIN V$ASM_ATTRIBUTE a2 ON g.GROUP_NUMBER = a2.GROUP_NUMBER 
  AND a2.NAME = 'compatible.rdbms'
LEFT JOIN V$ASM_ATTRIBUTE a3 ON g.GROUP_NUMBER = a3.GROUP_NUMBER 
  AND a3.NAME = 'au_size';
(2) 检查属性修改权限
SELECT NAME, VALUE, SYS_MODIFIABLE
FROM V$ASM_ATTRIBUTE
WHERE GROUP_NUMBER = 1  -- 指定磁盘组
  AND NAME IN ('disk_repair_time', 'compatible.asm');
(3) 查询 Exadata 特定属性
SELECT NAME, VALUE 
FROM V$ASM_ATTRIBUTE
WHERE LOWER(NAME) LIKE 'cell.%'
  AND GROUP_NUMBER > 0;
(4) 修改磁盘组属性(需 SYSDBA 权限)
-- 动态修改(立即生效)
ALTER DISKGROUP DATA SET ATTRIBUTE 'disk_repair_time' = '8h';

-- 需重启生效的属性
ALTER DISKGROUP DATA SET ATTRIBUTE 'access_control.enabled' = 'true';
(5) 比较模板与磁盘组属性
-- 默认模板属性
SELECT NAME, VALUE 
FROM V$ASM_ATTRIBUTE 
WHERE GROUP_NUMBER = 0;

-- 特定磁盘组属性
SELECT NAME, VALUE 
FROM V$ASM_ATTRIBUTE 
WHERE GROUP_NUMBER = (SELECT GROUP_NUMBER 
                      FROM V$ASM_DISKGROUP 
                      WHERE NAME = 'DATA');

总结

  • 核心作用:集中管理 ASM 磁盘组的行为配置
  • 关键属性
    • compatible.asm/rdbms:版本兼容性控制
    • au_size:存储分配基础单元(创建后不可变)
    • disk_repair_time:容错机制关键参数
  • 运维重点
    • 升级前必须检查兼容性属性
    • 谨慎修改 SYS_MODIFIABLE = DEFERRED 的属性
    • Exadata 环境关注 cell.* 属性
  • 典型场景
    创建磁盘组
    设置au_size
    升级数据库
    检查compatible.rdbms
    磁盘故障
    调整disk_repair_time

⚠️ 警告:错误设置属性可能导致磁盘组不可用,生产环境修改前务必测试!

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值