Oracle ASM File Template 详解

Oracle ASM File Template 详解

适用版本:Oracle Database 10g / 11g / 12c / 19c / 23ai 文档版本:v1.0 / 2026-07


1. 概述

ASM File Template 定义文件属性[1]:

详细见:Oracle ASM 架构与 AU 详解Oracle ASM File Extent 与 Mirroring 详解


2. 模板作用

2.1 属性

- 冗余(Redundancy)
- 条带(Striping)
- 默认

2.2 文件类型

- CONTROLFILE
- DATAFILE
- ONLINELOG
- ARCHIVELOG
- PARAMETERFILE
- BACKUPSET
- 等

3. 系统模板

3.1 默认

- TEMPLATE <type>
- 冗余:与 Disk Group 一致
- 条带:COARSE/FINE

3.2 查看

SELECT group_number, name, redundancy, stripe, system
FROM v$asm_template;

3.3 示例

- CONTROLFILE:FINE
- DATAFILE:COARSE
- ONLINELOG:COARSE
- ARCHIVELOG:COARSE

4. 冗余

4.1 MIRROR

- 2-way mirror
- 默认(normal redundancy)

4.2 HIGH

- 3-way mirror
- high redundancy

4.3 UNPROTECT

- 无 mirror
- external redundancy

5. 条带

5.1 COARSE

- 1MB 条带
- 适合大文件
- DATAFILE

5.2 FINE

- 128K 条带
- 适合小文件
- CONTROLFILE
- ONLINELOG

6. 自定义模板

6.1 创建

ALTER DISKGROUP data ADD TEMPLATE critical_file 
  ATTRIBUTES (UNPROTECTED COARSE);

ALTER DISKGROUP data ADD TEMPLATE high_file 
  ATTRIBUTES (HIGH FINE);

6.2 修改

ALTER DISKGROUP data ALTER TEMPLATE critical_file 
  ATTRIBUTES (MIRROR FINE);

6.3 删除

ALTER DISKGROUP data DROP TEMPLATE critical_file;

7. 使用

7.1 文件别名

CREATE TABLESPACE critical_ts 
  DATAFILE '+data(critical_file)/critical01.dbf' SIZE 10G;

7.2 默认

- 不指定:使用系统模板
- 指定:使用自定义

8. 查看

8.1 模板

SELECT group_number, name, redundancy, stripe, system
FROM v$asm_template
WHERE group_number = 1;

8.2 文件

SELECT group_number, file_number, name, type, bytes, space
FROM v$asm_file
WHERE group_number = 1;

8.3 别名

SELECT group_number, file_number, name, alias_directory
FROM v$asm_alias;

9. 应用场景

9.1 关键文件

- CONTROLFILE:FINE
- ONLINELOG:FINE
- MIRROR

9.2 大数据文件

- DATAFILE:COARSE
- 节省 I/O

9.3 备份

- BACKUPSET:COARSE
- UNPROTECT(外部冗余)

10. Disk Group 与模板

10.1 Normal Redundancy

- 默认 2-way
- 模板可改 3-way(HIGH)
- 不能 UNPROTECT

10.2 High Redundancy

- 默认 3-way
- 模板不能降

10.3 External Redundancy

- 默认 UNPROTECT
- 模板不能升

11. 性能

11.1 条带

- COARSE:大文件顺序
- FINE:小文件随机

11.2 选择

- 控制文件:FINE
- 日志:FINE
- 数据:COARSE
- 备份:COARSE

12. 管理

12.1 ASMCMD

asmcmd
ASMCMD> lstmpl
ASMCMD> lstpl
ASMCMD> mktpl critical_file --redundancy mirror --stripe fine
ASMCMD> rmtpl critical_file

12.2 SQL

ALTER DISKGROUP data ADD TEMPLATE ...;

13. 常见问题

13.1 模板不存在

- 检查
- 创建

13.2 冗余不匹配

- Disk Group 类型
- 检查

13.3 性能

- 条带选择
- 优化

14. 最佳实践

  1. 关键文件:MIRROR FINE
  2. 数据文件:默认 COARSE
  3. 自定义:场景
  4. 命名:清晰
  5. 监控:使用
  6. 测试:性能
  7. 文档:配置
  8. 演练:定期
  9. 外部冗余:谨慎
  10. 备份:模板

15. 参考资料

[1] Oracle Automatic Storage Management Administrator’s Guide 19c https://docs.oracle.com/en/database/oracle/oracle-database/19/ostmg/