
Oracle 19c: V$ASM_TEMPLATE 动态性能视图详解
核心作用:管理ASM磁盘组中文件的存储属性模板,控制文件冗余(Redundancy)和条带化(Striping)策略。
1. 视图核心作用
- 模板定义:存储ASM中各类文件(数据文件、日志文件等)的默认存储属性
- 策略控制:决定文件在ASM磁盘组中的物理存储方式
- 继承机制:新文件自动应用关联模板的属性
- 系统/自定义模板:Oracle预定义模板 + 用户自定义模板
2. 关键使用场景
- 文件创建策略:控制新建文件的冗余级别(MIRROR/HIGH/UNPROT)和条带化(FINE/COARSE)
- 性能优化:为特定文件类型(如重做日志)配置细粒度条带化(FINE)提升I/O性能
- 存储管理:检查磁盘组中不同文件类型的存储策略
- 模板定制:创建符合业务需求的自定义存储模板
- 问题诊断:验证文件实际存储策略是否符合预期
3. 字段详解 (Oracle 19c)
| 字段名 | 数据类型 | 说明 |
|---|---|---|
GROUP_NUMBER | NUMBER | 磁盘组编号,关联V$ASM_DISKGROUP.GROUP_NUMBER |
TEMPLATE_NAME | VARCHAR2(30) | 模板名称(系统模板如DATAFILE/ONLINELOG或用户自定义名称) |
REDUNDANCY | VARCHAR2(7) | 冗余级别:MIRROR(双向镜像)/HIGH(三向镜像)/UNPROT(无冗余)/PARITY(奇偶校验) |
STRIPE | VARCHAR2(6) | 条带化策略:FINE(128KB条带)/COARSE(1MB AU条带) |
PRIMARY_REGION | VARCHAR2(30) | 主存储区域(扩展磁盘组特性) |
MIRROR_REGION | VARCHAR2(30) | 镜像存储区域(扩展磁盘组特性) |
SYSTEM | VARCHAR2(3) | 是否系统模板:YES(Oracle内置)/NO(用户自定义) |
INHERITED | VARCHAR2(3) | 是否继承父模板:YES/NO |
4. 相关视图与基表
关联视图
GV$ASM_TEMPLATE:集群所有实例的模板信息V$ASM_DISKGROUP:磁盘组基础信息(GROUP_NUMBER关联)V$ASM_FILE:查看文件实际使用的模板(TEMPLATE_NAME关联)V$ASM_ALIAS:模板别名信息
底层基表
X$KFFTP:ASM实例内部表,存储模板元数据(需SYSASM权限访问)-- 基表查询示例 SELECT * FROM X$KFFTP WHERE GROUP_KFFTP = 1; -- 磁盘组1的模板
5. 核心原理
模板继承机制
graph TD
A[磁盘组创建] --> B[加载系统默认模板]
B --> C[DATAFILE/ONLINELOG/CONTROLFILE等]
C --> D[用户创建新文件]
D --> E{是否指定模板?}
E -->|是| F[应用指定模板属性]
E -->|否| G[应用文件类型默认模板]
策略生效规则
- 冗余级别:必须 ≤ 磁盘组的冗余能力(例:
EXTERNAL磁盘组不能使用HIGH冗余) - 条带化策略:
COARSE:默认策略,按分配单元(AU)条带化(适合数据文件)FINE:128KB条带化(适合重做日志,提升并发写入性能)
- 模板绑定:文件创建后模板属性不可更改(除非重建文件)
6. 常用操作SQL
查看所有模板
SELECT
g.NAME AS disk_group,
t.TEMPLATE_NAME,
t.REDUNDANCY,
t.STRIPE,
t.SYSTEM
FROM V$ASM_TEMPLATE t
JOIN V$ASM_DISKGROUP g ON t.GROUP_NUMBER = g.GROUP_NUMBER
ORDER BY g.NAME, t.TEMPLATE_NAME;
创建自定义模板
ALTER DISKGROUP DATA ADD TEMPLAPE fast_log
ATTRIBUTES (
REDUNDANCY HIGH, -- 三副本镜像
STRIPE FINE -- 128KB细粒度条带
);
检查文件使用的模板
SELECT
FILE_NAME,
TEMPLATE_NAME,
REDUNDANCY,
STRIPE
FROM V$ASM_FILE
WHERE GROUP_NUMBER = 1;
修改文件模板(需重建文件)
-- Step 1: 创建新文件并指定模板
ALTER DATABASE ADD LOGFILE '+DATA(fast_log)' SIZE 200M;
-- Step 2: 删除旧文件
ALTER DATABASE DROP LOGFILE '+DATA/old_logfile.log';
删除自定义模板
ALTER DISKGROUP DATA DROP TEMPLATE fast_log;
注意事项
- 系统模板保护:
- 预定义模板(
DATAFILE/ONLINELOG等)不可删除 SYSTEM='YES'的模板属性不可修改
- 预定义模板(
- 磁盘组兼容性:
- 使用
PARITY冗余需磁盘组兼容性 ≥ 11.2.0.4 - 区域存储(Region)需兼容性 ≥ 12.1
- 使用
- 性能影响:
FINE条带增加元数据开销,适合高频写入小IO场景COARSE条带适合大块数据读写
- 权限要求:
GRANT SYSASM TO asm_admin; -- 需SYSASM权限管理模板
通过合理配置
V$ASM_TEMPLATE,可显著优化ASM存储性能(如日志文件用FINE条带+HIGH冗余,数据文件用COARSE条带)。
欢迎关注我的公众号《IT小Chen》
1165

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



