
以下是对 Oracle 19C ASM 中 V$ASM_ATTRIBUTE 动态性能视图 的全面解析,涵盖作用、使用场景、字段含义、相关视图、基表、原理及常用 SQL 查询:
1. 作用
V$ASM_ATTRIBUTE 记录 ASM 磁盘组的属性配置,这些属性控制磁盘组的行为和特性:
- 定义磁盘组的兼容性级别(ASM/RDBMS)
- 配置磁盘修复时间、分配单元大小等关键参数
- 设置高级功能(如加密、智能扫描支持)
- 控制空间管理和冗余策略
📌 本质:ASM 磁盘组的"配置管理中心"
2. 使用场景
- 磁盘组创建/修改:查看或验证属性设置(如
COMPATIBLE.ASM) - 升级准备:检查兼容性属性是否支持目标版本
- 性能调优:调整
au_size(分配单元大小) - 故障排查:验证
disk_repair_time等容错设置 - 安全审计:确认加密、冗余策略是否合规
- 存储集成:检查 Exadata 特定属性(如
cell.smart_scan_capable)
3. 字段含义(关键列)
| 列名 | 数据类型 | 说明 |
|---|---|---|
GROUP_NUMBER | NUMBER | 磁盘组编号(0 表示默认模板属性) |
NAME | VARCHAR2(30) | 属性名称(不区分大小写) |
VALUE | VARCHAR2(4000) | 属性值 |
SYS_MODIFIABLE | VARCHAR2(5) | 修改权限:IMMEDIATE(动态修改)DEFERRED(需重启)FALSE(不可修改) |
核心属性详解
| 属性名 | 说明 | 示例值 | 重要性 |
|---|---|---|---|
compatible.asm | ASM 软件最低兼容版本 | 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_ACFSSNAPSHOTS | ACFS 快照信息(若使用) |
基表(X$表)
X$KFDPGATTR:V$ASM_ATTRIBUTE的底层内存结构-- 查看基表结构(仅供研究) SELECT * FROM X$KFDPGATTR WHERE kfdpatgrp = 1; -- 磁盘组1的属性
5. 核心原理
属性管理机制
- 继承体系:
- 磁盘组属性 > 默认模板属性(
GROUP_NUMBER=0)
- 磁盘组属性 > 默认模板属性(
- 持久化存储:
- 属性保存在磁盘组元数据中,ASM 实例启动时加载
- 动态修改:
ALTER DISKGROUP DATA SET ATTRIBUTE 'disk_repair_time' = '24h'; - 兼容性控制:
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.*属性
- 典型场景:
⚠️ 警告:错误设置属性可能导致磁盘组不可用,生产环境修改前务必测试!
欢迎关注我的公众号《IT小Chen》
1165

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



