Oracle 20c 提供了文件组模板新特性。如果没有文件组模板,则要更改自动创建的文件组的属性,则在创建关联文件后必须手动更改属性,这会触发不必要的重新平衡。文件组模板功能提供了更好的选择。
在看文件组模板前先了解一下文件组相关的属性。
- Oracle ASM 文件组属性
- COMPATIBLE.CLIENT
该文件组属性的当前值是文件打开操作期间最后一次已知的客户端兼容性。
必须将 COMPATIBLE.RDBMS 磁盘组属性设置为小于或等于:
COMPATIBLE.CLIENT
:每个文件组的 COMPATIBLE.CLIENT (当设置时)COMPATIBLE
:兼容的数据库初始化参数(针对连接到Oracle ASM的每个数据库)COMPATIBLE.ASM
:磁盘组的COMPATIBLE.ASM
必须是 Oracle ASM 管理员才能修改此属性。
- DBCLONE_STATUS
该文件组属性指定数据库拆分操作的状态。不能手动设置此属性。
在与此文件组关联的数据库的拆分操作过程中,文件组属性包含以下值之一:
PREPARING
数据库准备拆分的过程已开始,但是数据库尚未准备好拆分。PREPARED
准备过程已完成,数据库已准备好进行拆分。SPLITTING
分割数据库文件的过程已经开始。SPLIT COMPLETED
数据库已拆分。DROPPING
删除准备的数据库克隆的过程已开始。FAILED
克隆操作失败。重新平衡操作应删除不完整的克隆。
- OWNER
此文件组属性指定 OWNER 设置。要设置 OWNER 属性,必须将 ACCESS_CONTROL.ENABLED 磁盘组属性设置为 TRUE,以启用 Oracle ASM 文件访问控制。指定为 OWNER 的用户必须是磁盘组的成员。
只有 Oracle ASM 管理员,与文件组关联的 OWNER,USER_GROUP 的OWNER 和与文件组关联的 USER_GROUP 的成员才能修改标有标签的文件组的属性。数据库管理员可以修改此属性。仅当 ACCESS_CONTROL.ENABLED 为 true 时,此属性才为 true。
您可以在 VASM_FILEGROUP 视图的 USER_NUMBER 和 USER_INCARNATION 列中显示 OWNER。USER_NUMBER 和 USER_INCARNATION 中的值可以与 VASM_USER 视图的 USER_NUMBER 和 INCARNATION 列结合在一起以显示用户名。
此属性的默认值为 NULL。
必须是 Oracle ASM 管理员才能修改此属性。
- PARENT_FILEGROUP_NUMBER
该文件组属性指定父文件组号。不能手动设置此属性。
当准备好要拆分的数据库时,将为影子文件创建一个子文件组。子文件组自动设置 PARENT_FILEGROUP_NUMBER 属性。
- POWER_LIMIT
该文件组属性指定重新平衡能力,该平衡能力确定用于此文件组的磁盘重新平衡的并行重定位次数。有效设置是1到1024。重新平衡文件组时,功率限制值将按以下方式应用:
- 如果已在
ALTER
DISKGROUP
REBALANCE
SQL语句或 ASMCMD rebal 命令中明确指定了power 选项,则在SQL rebalance语句或ASMCMD rebalance命令中指定的power值将用于重新平衡所有文件组。 - 如果尚未在 SQL rebalance 语句或 ASMCMD rebalance 命令中指定 power 选项,则文件组 POWER_LIMIT 属性值(如果已设置)适用于文件组重新平衡。
- 如果未在 SQL rebalance 语句或 ASMCMD rebalance 命令中指定 power 选项,并且尚未为文件组设置 POWER_LIMIT 属性,则 power 值默认为文件组 rebalance 的 ASM_POWER_LIMIT 初始化参数的值。
必须是数据库管理员才能修改此属性。
- PRIORITY
此文件组属性指定重新平衡优先级,并确保某些类型的文件先于其他文件进行重新平衡。优先级最高的文件组将首先完全重新平衡,然后是优先级次高的文件组,以此类推,直到最低优先级。
可以将重新平衡优先级设置设置为 HIGHEST、HIGH
、MEDIUM
、LOW、LOWEST
。默认值为 MEDIUM。
必须是数据库管理员才能修改此属性。
- QUOTA_GROUP
该文件组属性指定此文件组所属的配额组的名称。有效设置是现有的配额组名称。默认值为 GENERIC。磁盘组中的每个文件组都必须是配额组的成员。
必须是Oracle ASM管理员才能修改此属性。
- REDUNDANCY
此文件类型属性指定文件组的冗余。每种文件类型的默认冗余设置均来自系统模板。有效设置为:
HIGH
为所有文件提供三向镜像。MIRROR
为所有文件提供双向镜像。PARITY
为了减少与 Oracle ASM 相关的数据保护的开销,为磁盘组提供了奇偶校验保护。奇偶校验冗余仅限于不需要持续更新的数据,以减少对奇偶校验保护的执行影响。 PARITY 设置适用于一次写入文件,例如存档日志和备份集,而数据文件和读/写文件不支持该设置。奇偶校验在弹性磁盘组中至少需要三个常规(非仲裁)故障组。创建奇偶校验文件时,如果有三个或四个故障组,则每个奇偶校验扩展区集都有两个数据扩展区。对于双向镜像文件,该方案将产生50%的冗余开销,而不是100%的冗余开销。如果在创建奇偶校验文件时有五个或更多故障组,则每个奇偶校验扩展区集都有四个数据扩展区。这种情况会产生25%的冗余开销。DOUBLE
指定双重奇偶校验并容忍双重故障。UNPROTECTED
不提供 Oracle ASM 的镜像。
如果将文件创建为 UNPROTECTED
、MIRROR
或 HIGH
冗余,则其冗余可以更改为 UNPROTECTED,MIRROR 或 HIGH。如果更改了冗余,则 V$ASM_FILE
的 REMIRROR 列包为 Y,以表示文件需要新的镜像,从而启动重新平衡以使新的冗余生效。重新平衡完成后,REMIRROR 列中的值包为N。
创建具有 PARITY 或 DOUBLE 的文件时,该文件永远不能更改冗余。
当文件组冗余属性从 HIGH,MIRROR 或 UNPROTECTED 设置修改为 PARITY或 DOUBLE 设置时,文件组中现有文件的冗余不会更改。此行为也适用于从PARITY 或 DOUBLE 更改为 HIGH,MIRROR 或 UNPROTECTED
的设置。但是,以后创建的所有文件都采用新的冗余设置。
发出 ALTER
DISKGROUP
MODIFY
FILEGROUP
SQL命令时,更改文件组冗余可能不会修改同时创建的文件的冗余。要完成冗余更改,请在创建这些文件后再次发出 ALTER
DISKGROUP
MODIFY
FILEGROUP
SQL命令。
如果文件组中的冗余增加,则重新平衡完成后,VASM_FILE 的 REDUNDANCY 列的值将增加。但是,如果文件组中的冗余减少,则在重新平衡运行之前,VASM_FILE 的 REDUNDANCY 列的值将立即降低。
不指定文件类型而更改冗余会影响所有文件类型。
必须是数据库管理员才能修改此属性。
- STRIPING
此文件类型属性为每种文件类型指定 STRIPING 设置。通常,每种文件类型的默认值都足够,并且不会更改。
除默认情况下具有 FINE 条带的控制文件外,大多数文件都具有 COARSE 条带。有效设置为 COARSE 和 FINE。默认值为 COARSE 或从文件类型模板派生。
“STRIPING”仅影响新创建的文件,并且在创建文件后无法更改。
必须是数据库管理员才能设置此属性。
- USER_GROUP
该文件组属性指定 USER_GROUP 设置。要设置 USER_GROUP 属性,必须将 ACCESS_CONTROL.ENABLED 磁盘组属性设置为 TRUE,以启用 Oracle ASM 文件访问控制。指定的用户组必须是现有用户组。
只有 Oracle ASM 管理员,与文件组关联的 OWNER,USER_GROUP 的 OWNER 和与文件组关联的 USER_GROUP 的成员才能修改标有标签的文件组的属性。数据库管理员可以修改此属性。仅当 ACCESS_CONTROL.ENABLED 为true时,此属性才为true。
您可以使用 VASM_FILEGROUP 视图的 USERGROUP_NUMBER 和 USERGROUP_INCARNATION 列显示用户组信息。USERGROUP_NUMBER 和 USERGROUP_INCARNATION 中的值可以与 VASM_FILEGROUP 视图的USERGROUP_NUMBER 和 INCARNATION 列一起显示用户组名称。
在文件组中创建的文件将继承 USER_GROUP 属性设置。
克隆继承 USER_GROUP 属性设置。
默认值为NULL。
必须是 Oracle ASM 管理员才能修改此属性。
以下SQL语句为数据文件和归档日志文件类型设置 REDUNDANCY 文件组属性:
代码语言:javascript复制SQL> ALTER DISKGROUP DiskGroup_2 MODIFY FILEGROUP FileGroup_PDB1
SET 'datafile.redundancy' = 'HIGH';
SQL> ALTER DISKGROUP DiskGroup_2 MODIFY FILEGROUP FileGroup_PDB1
SET 'archivelog.redundancy' = 'MIRROR';
以下 SQL 语句为 Oracle ADVM 卷设置 REDUNDANCY 文件组属性。要使Oracle ADVM 卷更改冗余,必须将 COMPATIBLE.ASM 和 COMPATIBLE.ADVM 都设置为 18.1 或更高。对于 Oracle ADVM 卷,不能更改单个文件类型的冗余设置:
代码语言:javascript复制SQL> ALTER DISKGROUP data MODIFY FILEGROUP volume1 SET 'redundancy'='high';
- 文件组模板
使用文件组模板,您可以自定义和设置自动创建的文件组的默认文件组属性,可以自定义由多个数据库继承的文件组属性。
如下例所示,可以从文件组模板手动创建多个文件组,以继承模板中的属性。
代码语言:javascript复制SQL> ALTER DISKGROUP data2 ADD FILEGROUP fg_template1 TEMPLATE SET 'datafile.redundancy'='unprotected';
SQL> ALTER DISKGROUP data2 ADD FILEGROUP fg_db DATABASE NONE FROM TEMPLATE fg_template1;
如果尚未创建文件组模板,则使用文件组模板会自动为数据库创建一个新的文件组,并且新文件组将继承文件组模板的属性。
如下例所示,可以创建多个表空间或数据库以从文件组模板继承自定义属性。
代码语言:javascript复制SQL> ALTER DISKGROUP data2 ADD FILEGROUP fg_template2 TEMPLATE;
SQL> CREATE TABLESPACE tbs1 datafile ' data2(fg$fg_template2)/dbs/tbs1.f' size 1M;
- Oracle ASM 支持的文件类型及默认模板
Oracle ASM 支持数据库所需的大多数文件类型。下表并列出了提供文件创建属性的系统默认模板。