ASM文件名格式
所有ASM文件都是Oracle管理文件(OMF),因此大多数管理功能并不需要磁盘组中实际文件名的细节。删除ASM磁盘组中的对象时,将自动删除对应的文件。某些命令将提供实际的文件名,例如alter database backup controlfile to trace;一些数据字典和动态性能视图也可以提供实际的文件名,例如,动态性能视图V$DATAFILE显示每个磁盘组中的实际文件名。下面是一个示例: SQL> select file#, name, blocks from v$datafile;
FILE# NAME BLOCKS
---------- ---------------------------------------- ----------
1 +DATA/dw/datafile/system.256.627432971 89600
2 +DATA/dw/datafile/sysaux.257.627432973 77640
3 +DATA/dw/datafile/undotbs1.258.627432975 12800
4 +DATA/dw/datafile/users.259.627432977 640
5 +DATA/dw/datafile/example.265.627433157 12800
6 /u05/oradata/dmarts.dbf 32000
8 /u05/oradata/xport.dbf 38400
7 rows selected.
ASM文件名可以是6种不同格式中的一种。下面分别概述不同的格式以及使用它们的环境:或者作为对已有文件的引用,或者用于单个文件和多个文件的创建。
1. 完全限定的名称
完全限定的ASM文件名只在引用已有文件时使用。完全限定的ASM文件名具有如下 格式:
+group/dbname/file type/tag.file.incarnation
其中,group是磁盘组名,dbname是文件所属的数据库,file type是Oracle文件类型,tag是文件类型特有的信息,file.incarnation对确保唯一性。下面是USERS表空间的ASM文件示例:
+DATA/dw/datafile/users.259.627432977
磁盘组名是+DATA,数据库名是dw,它是USERS表空间的数据文件,如果决定创建USERS表空间的另一个ASM数据文件,则文件编号/具体名称对259.627432977可确保唯一性。
2. 数字名称
数字名称只在引用已有的ASM文件时使用。这允许仅通过磁盘组名和文件编号/具体名称对来引用已有的ASM文件。前面小节中ASM文件的数字名称是:
+DATA.259.627432977
3. 别名
在引用已有的对象或创建单个ASM文件时,可以使用别名。使用alter diskgroup add alias命令,可以为已有的或新的ASM文件创建更易读懂的名称,并且很容易与普通的ASM文件名区分,因为别名的结尾没有包含点的数字对(文件编号/具体名称对),如下所示:
SQL> alter diskgroup data
2 add directory '+data/purch';
Diskgroup altered.
SQL> alter diskgroup data
2 add alias '+data/purch/users.dbf'
3 for '+data/dw/datafile/users.259.627432977';
Diskgroup altered.
SQL>
4. 具有模板名称的别名
具有模板的别名只可以在创建新的ASM文件时使用。创建新ASM文件时,模板提供了指定文件类型和标志的简略方式。下面是使用+DATA磁盘组中新表空间的模板的一个别名示例:
SQL> create tablespace users2 datafile '+data(datafile)';
Tablespace created.
模板datafile指定条带化为COARSE(粗糙),普通冗余组为MIRROR,高度冗余组为HIGH,这是数据文件的默认设置。因为未完全限定名称,所以此磁盘组的ASM名称如下所示:
+DATA/dw/datafile/users2.267.627782171
稍后在4.2.6小节中将更多地讨论ASM模板。
5. 不完整的名称
不完整的文件名格式可用于单文件创建或多文件创建操作。可以只指定磁盘组名,并且根据文件类型使用默认的模板,如下所示:
SQL> create tablespace users5 datafile '+data1';
Tablespace created.
6. 具有模板的不完整名称
和不完整的ASM文件名一样,具有模板的不完整文件名可用于单文件创建或多文件创建操作。无论实际的文件类型是什么,模板名都可确定文件的特征。
下面的示例创建一个表空间,但对这个新的表空间使用联机日志文件的条带化和镜像特征(细密条带化)代替了数据文件的属性(粗糙条带化):
SQL> create tablespace users6 datafile '+data1(onlinelog)';
Tablespace created.