管理ASM文件、目录和模板
Administering Oracle ASM Files, Directories, and Templates
ASM支持什么类型的文件?
ASM支持数据库所需的大多数文件类型。
表5-1列出了由Oracle ASM直接支持的文件类型,并列出了为文件创建提供属性的系统默认模板。表中显示的一些文件类型与特定的产品或功能相关,在本书中没有讨论。
File types supported by Oracle ASM
File Type | Default Templates |
---|---|
Archive log files |
|
Oracle ASM Persistent initialization parameter file (SPFILE) |
|
Oracle ASM Persistent initialization parameter file (SPFILE) backup |
|
Audit spill files |
|
Automatically generated control file backup |
|
Auto-login software keystore |
|
Archive log backup piece |
|
Data file backup pieces |
|
Data file incremental backup pieces |
|
Change tracking file |
|
Control files |
|
Data file copy |
|
Data files |
|
Data Guard configuration file |
|
Data Pump dumpset |
|
Flashback logs |
|
Flash file |
|
Cross-platform transportable data files incremental backup |
|
Software keystore |
|
Oracle Cluster Registry file |
|
Redo log files |
|
Persistent initialization parameter file (SPFILE) |
|
Temporary files |
|
Voting files |
|
Cross-platform transportable data files |
|
Cross-platform transportable data files backup |
|
Oracle ASM Dynamic Volume Manager volumes |
n/a |
About Oracle ASM File Names
在Oracle ASM中创建的每个文件都提供一个由Oracle托管文件生成的文件名,称为完全限定文件名(或系统生成的文件名)。完全限定的文件名表示在Oracle ASM文件系统中的完整路径名。完全限定文件名的一个例子是:
+data/orcl/controlfile/Current.256.541956473
可以使用完全限定的文件名引用(读取或检索)Oracle ASM文件。您还可以使用其他缩写的文件名格式,例如别名ASM文件名,来引用Oracle ASM文件。
ASM根据创建文件的任何请求生成一个完全限定的文件名。创建请求没有或不能指定完全限定的文件名。相反,它使用更简单的语法来指定文件,比如别名或磁盘组名。然后,ASM创建文件,根据文件类型将其放置在正确的ASM路径中,然后分配适当的完全限定文件名。如果在创建请求中指定了别名,Oracle ASM还会创建别名,以便引用完全限定的文件名。
ASM文件创建请求可以是单个文件创建请求,也可以是多个文件创建请求。
指定每个文件名表单的有效用法。如果表单用于文件创建,则该表指定创建的文件是否是Oracle托管文件(OMF)。
Valid usage for Oracle ASM file name forms
File Name Form | Reference to File? | Single-file Creation? | Multiple File Creation? | Created as OMF? |
---|---|---|---|---|
Fully qualified file name |
Yes |
No |
No |
No |
Alias file name |
Yes |
Yes |
No |
No |
Alias with template file name |
No |
Yes |
No |
No |
Incomplete file name |
No |
Yes |
Yes |
Yes |
Incomplete file name with template |
No |
Yes |
Yes |
Yes |
Single File Creation Form
单文件创建表单
A single file creation form is used to create a single file, such as a data file or a control file. The form of the Oracle ASM file name in this type is either an alias, such as +data/orcl/ctl.f
, or an incomplete file name, such as a disk group name preceded by a plus sign (+data
). You use the alias or disk group name where a file name is called for in a SQL statement, such as CREATE
TABLESPACE
, CREATE
CONTROLFILE
.
单个文件创建表单用于创建单个文件,例如数据文件或控制文件。这种类型的ASM文件名的形式是一个别名,比如+data/orcl/ctl.f,或不完整的文件名,如前面有加号(+data)的磁盘组名。在SQL语句中调用文件名的地方使用别名或磁盘组名,例如CREATE TABLESPACE、CREATE CONTROLFILE。
Multiple File Creation Form
多个文件创建表单
多个文件创建表单多次用于创建Oracle ASM文件,例如在为初始化参数DB_CREATE_FILE_DEST赋值时。您还可以多次运行CREATE TABLESPACE语句(没有文件名规范)。每次,ASM都会创建一个不同的惟一数据文件名。
在使用多个文件创建表单时,可以使用不完整的文件名表单,比如前面有加号(+data)的磁盘组名。在本例中,您将DB_CREATE_FILE_DEST设置为一个不完整的文件名(例如,+data),每当运行必须在DB_CREATE_FILE_DEST中创建数据库文件的命令时,就在指定的磁盘组中创建该文件,并分配一个惟一的完全限定名。您可以在其他*_DEST初始化参数中使用不完整的文件名。
Fully Qualified File Name Form
完全限定的文件名表单
除了创建磁盘组之外,可以使用完全限定的表单在Oracle ASM操作中引用现有的Oracle ASM文件。该表单是在创建ASM文件时,由ASM自动生成的Oracle ASM文件名。
在非多租户环境中,完全限定的文件名具有以下形式:
+diskgroup/dbname/filetype/filetypetag.file.incarnation
对于多租户数据库,完全限定的文件名有以下形式:
+diskgroup/cdb/pdb_guid/filetype/filetypetag.file.incarnation
完全限定文件名的字段为:
+diskgroup 是前面有一个加号的磁盘组名。
可以将加号(+)看作Oracle ASM文件系统的根目录,类似于UNIX或Linux计算机上的斜杠(/)。
dbname 是文件所属数据库的DB_UNIQUE_NAME。
filetype 是Oracle文件类型,可以是表5-3中所示的文件类型之一。
filetypetag 是关于文件的特定类型信息,可以是表5-3中所示的标记之一。
file.incarnation 是文件/化身对,用于确保唯一性。
cdb是cdb的名称
pdb_guid是PDB GUID值。
完全限定的Oracle ASM文件名的例子有:
SQL> SELECT NAME FROM V$DATAFILE; NAME --------------------------------------------------------------------------- +DATA/ORCL/DATAFILE/system.257.967544915 +DATA/ORCL/DATAFILE/sysaux.258.967544961 +DATA/ORCL/DATAFILE/undotbs1.259.967544985 +DATA/ORCL/64A52F53A7693286E053CDA9E80AED76/DATAFILE/system.267.967545119 +DATA/ORCL/64A52F53A7693286E053CDA9E80AED76/DATAFILE/sysaux.266.967545119 +DATA/ORCL/DATAFILE/users.260.967544987
Oracle file types and Oracle ASM file type tags
Oracle文件类型和ASM文件类型标记
Oracle ASM File Type | Description | Oracle ASM File Type Tag | Comments |
---|---|---|---|
|
Control files and backup control files |
Current Backup |
Archive Backup |
|
Data files and data file copies |
|
Name of the tablespace into which the file is added |
|
Online logs |
|
|
|
Archive logs |
|
|
|
Tempfiles |
|
Name of the tablespace into which the file is added |
|
Data file and archive log backup pieces; data file incremental backup pieces |
|
|
|
Persistent parameter files |
|
Name of the SPFILE |
|
Data Guard configuration file |
|
Data Guard uses the value of the |
|
Flashback logs |
|
|
|
Block change tracking data |
|
Used during incremental backups |
|
Data Pump dumpset |
|
Dump set files encode the user name, the job number that created the dump set, and the file number as part of the tag. |
|
Data file convert |
|
Name of the tablespace where the Oracle ASM metadata is added |
|
Automatic backup files |
|
|
|
Oracle ASM persistent parameter files |
|
Name of the Oracle ASM SPFILE |
|
Oracle Clusterware Registry files |
|
Name of the OCR files |
Alias Oracle ASM File Name Forms
你可以使用别名来引用已有的ASM文件和创建新的ASM文件。别名以磁盘组名开头,前面有一个加号,后面指定一个名称字符串。别名文件名使用分层目录结构实现,用斜杠(/)或反斜杠(\)字符分隔名称组件。您可以在由Oracle托管文件(系统生成的)或用户创建的任何Oracle ASM目录中创建别名。别名必须包含磁盘组名;您不能在根级别(+)上创建别名。
当您使用别名文件名创建Oracle ASM文件时,将使用完全限定名创建该文件,并额外创建别名文件名。然后,您可以使用任意名称访问该文件。
别名ASM文件名与完全限定文件名或数字文件名不同,因为它们不是以点对数字结尾。试图创建以虚线对数字结尾的别名是错误的,例如格式USERS.259.685366091。ASM别名文件的例子有:
+data/orcl/control_file1
+fra/recover/second.dbf
Oracle数据库通过其别名文件名引用数据库文件,但仅当您使用别名创建数据库文件时才这样做。如果您创建没有别名的数据库文件,然后稍后添加别名,则数据库将通过其完全限定的文件名引用这些文件。以下是数据库如何使用别名文件名的示例:
别名文件名出现在V$views 中。例如,如果创建一个表空间并为数据文件使用别名文件名,则V$DATAFILE视图将显示别名文件名。
当控制文件指向数据文件和联机重做日志文件时,它可以使用别名文件名。
CONTROL_FILES初始化参数可以使用控制文件的别名文件名。数据库配置助理(DBCA)使用别名文件名创建控制文件。
注意:使用别名文件名创建的文件不属于Oracle托管文件,如果不再需要,将来可能需要手动删除。
Creating a Tablespace in Oracle ASM: Using a Data File with an Alias Name
例5-1使用别名的数据文件和用户定义的模板my_undo_template设置的属性创建undo表空间。本例假设已经在磁盘组数据中创建了一个目录来包含别名,并且用户定义的模板已经存在。
Creating a tablespace using an alias name
CREATE UNDO TABLESPACE myundo DATAFILE '+data(my_undo_template)/orcl/my_undo_ts' SIZE 200M;
因为在创建数据文件时使用了别名,所以该文件不是Oracle托管文件(OMF)文件,并且在删除表空间时不会自动删除该文件。要在删除表空间之后手动删除文件,请使用以下SQL语句:
ALTER DISKGROUP data DROP FILE '+data/orcl/mu_undo_ts';
Creating and Referencing Oracle ASM Files in the Database
在数据库中创建和引用Oracle ASM文件
除非使用别名创建文件,否则ASM文件是Oracle托管的文件。任何Oracle管理的文件在不再需要时都会被自动删除。
Creating Oracle ASM Files Using a Default File Location for Disk Group Specification
使用磁盘组规范的默认文件位置创建Oracle ASM文件
使用操作系统文件的Oracle托管文件特性,您可以指定一个目录作为创建数据文件、临时文件、重做日志文件和控制文件的默认位置。使用Oracle ASM的Oracle托管文件特性,您可以以不完整的Oracle ASM文件名的形式指定一个磁盘组作为创建这些文件的默认位置,以及其他文件类型,包括归档日志文件。至于操作系统文件,默认磁盘组的名称存储在初始化参数中,并在文件创建期间没有显式指定文件规范(例如,DATAFILE子句)时使用。
以下初始化参数接受Oracle ASM文件名的多文件创建上下文形式作为目标:
DB_CREATE_FILE_DEST
指定要在其中创建数据和临时文件的默认磁盘组位置。
DB_CREATE_ONLINE_LOG_DEST_n
指定要在其中创建重做日志和控制文件的默认磁盘组位置。
DB_RECOVERY_FILE_DEST
指定快速恢复区域的默认磁盘组,如果指定了该参数,并且没有指定DB_CREATE_ONLINE_LOG_DEST_n和CONTROL_FILES,则该磁盘组包含控制文件的副本和重做日志文件。
CONTROL_FILES
指定要在其中创建控制文件的磁盘组。
以下初始化参数接受Oracle ASM文件名和Oracle ASM目录名的多文件创建上下文形式作为目标:
LOG_ARCHIVE_DEST_n
指定默认的磁盘组或Oracle ASM目录作为归档重做日志文件的目标
LOG_ARCHIVE_DEST
可选参数,用于指定默认磁盘组或Oracle ASM目录作为归档重做日志文件的目标。当仅指定一个目的地时使用。
STANDBY_ARCHIVE_DEST
仅与备用数据库相关。它指定一个默认的磁盘组或Oracle ASM目录,该目录是来自主数据库的归档日志的位置。这本书里没有讨论。此参数已被弃用。参见Oracle数据保护概念和管理。
下面的CREATE TABLESPACE SQL语句演示了如何在默认磁盘组中创建Oracle ASM文件(在本例中是数据文件)。本例假设DB_CREATE_FILE_DEST初始化参数设置为+data。
SQL> CREATE TABLESPACE mytblspace;
ASM自动创建并管理磁盘组数据中Oracle ASM磁盘上mytblspace的数据文件。文件区段使用数据文件的默认模板定义的属性存储。
Using Oracle ASM File Names in SQL Statements
在SQL语句中使用Oracle ASM文件名
可以在SQL语句的file specification子句中指定Oracle ASM文件名。如果您是第一次创建文件,那么使用Oracle ASM文件名的创建形式。如果存在Oracle ASM文件,则必须使用文件名的引用形式,如果试图重新创建文件,则必须添加重用关键字,以便为新文件重用空间。这种用法可能发生在,例如,试图重新创建一个控制文件时,如“在Oracle ASM中创建控制文件”所示。
如果引用表单与重用关键字一起使用,而文件不存在,则会出现错误。
示例5-2是在SQL语句中指定Oracle ASM文件名的一个示例。在本例中,它用于文件创建表单。
创建表空间mytblspace,并包含磁盘组数据中包含的一个大小为200 MB的数据文件。数据文件被设置为自动扩展,最大大小不受限制。可以使用AUTOEXTEND子句覆盖此默认值。
CREATE TABLESPACE mytblspace DATAFILE '+data' SIZE 200M AUTOEXTEND ON;
Moving Data Files Between Disk Groups With ALTER DATABASE
使用ALTER DATABASE在磁盘组之间移动数据文件
在数据库打开和用户访问数据文件时,可以使用ALTER DATABASE MOVE DATAFILE SQL语句在磁盘组之间移动数据文件。
示例5-3展示了如何将数据文件从+data磁盘组移动到DATA2磁盘组。
示例5-3使用ALTER DATABASE在线移动数据文件
/* Create a new disk group DATA2 using ASMCA, ASMCMD, or SQL */ /* Then create appropriate directories in the DATA2 disk group */ ALTER DISKGROUP data2 ADD DIRECTORY '+DATA2/ORCL'; ALTER DISKGROUP data2 ADD DIRECTORY '+DATA2/ORCL/DATAFILE'; /* Move the EXAMPLE data file in DATA to EXAMPLE_STORAGE in DATA2*/ ALTER DATABASE MOVE DATAFILE '+DATA/ORCL/DATAFILE/EXAMPLE.266.798707687' TO '+DATA2/ORCL/DATAFILE/EXAMPLE_STORAGE'; SELECT SUBSTR(name, 1, 64) FROM V$DATAFILE; SUBSTR(NAME,1,64) ---------------------------------------------------------------- +DATA/ORCL/DATAFILE/system.258.798707555 +DATA2/ORCL/DATAFILE/example_storage +DATA/ORCL/DATAFILE/sysaux.257.798707491 +DATA/ORCL/DATAFILE/undotbs1.260.798707621 +DATA/ORCL/DATAFILE/users.259.798707621
Oracle Database File Mapping for Oracle ASM Files
用于Oracle ASM文件的Oracle数据库文件映射
为了理解I/O性能,您必须详细了解文件所在的存储层次结构。
Oracle数据库提供了一组动态性能视图,用于显示文件到逻辑卷中间层到实际物理设备的完整映射。使用这些动态视图,您可以定位文件的任何块所在的确切磁盘。
Oracle数据库与名为FMON的后台进程通信,以管理映射信息。Oracle提供PL/SQL DBMS_STORAGE_MAP包来调用填充映射视图的映射操作。
在映射Oracle ASM文件时,Oracle数据库文件映射不需要第三方库。此外,Oracle数据库支持所有操作系统平台上的Oracle ASM文件映射。
本节中的所有示例都在Oracle数据库实例上运行。
Enabling File Mapping With Oracle ASM Files
要启用文件映射,请将FILE_MAPPING初始化参数设置为TRUE。不需要关闭数据库实例来设置该参数。您可以使用以下ALTER SYSTEM语句设置参数:
SQL> ALTER SYSTEM SET FILE_MAPPING=TRUE;
运行适当的DBMS_STORAGE_MAP映射过程。
在冷启动场景中,Oracle数据库刚刚启动,还没有调用任何映射操作。您可以执行DBMS_STORAGE_MAP.MAP_ALL过程,用于为与数据库关联的整个I/O子系统构建映射信息。
例如,下面的命令构建映射信息并提供10000个区段:
SQL> EXECUTE DBMS_STORAGE_MAP.MAP_ALL(10000);
在已经构建了映射信息的暖启动场景中,您可以选择调用DBMS_STORAGE_MAP.MAP_SAVE过程,用于将映射信息保存到数据字典中。
默认情况下,这个过程在DBMS_STORAGE_MAP.MAP_ALL()中调用。这将强制将SGA中的所有映射信息刷新到磁盘。DBMS_STORAGE_MAP。默认情况下,在DBMS_STORAGE_MAP.MAP_ALL()中调用MAP_SAVE过程。
重新启动数据库后,使用DBMS_STORAGE_MAP.RESTORE()将映射信息恢复到SGA中。如果需要,可以调用DBMS_STORAGE_MAP.MAP_ALL()来刷新映射信息。
Using File Mapping Views With Oracle ASM Files
Mapping information generated by DBMS_STORAGE_MAP
package is captured in dynamic performance views. These views include V$MAP_COMP_LIST
, V$MAP_ELEMENT
, V$MAP_EXT_ELEMENT
, V$MAP_FILE
, V$MAP_FILE_EXTENT
, V$MAP_FILE_IO_STACK
, V$MAP_LIBRARY
, and V$MAP_SUBELEMENT
.
使用文件映射视图与Oracle ASM文件
DBMS_STORAGE_MAP包生成的映射信息在动态性能视图中捕获。这些视图包括V$MAP_COMP_LIST、V$MAP_ELEMENT、V$MAP_EXT_ELEMENT、V$MAP_FILE、V$ map_file_区段、V$MAP_FILE_IO_STACK、V$MAP_LIBRARY和V$MAP_SUBELEMENT。
For example, you can view file mappings with V$MAP_FILE
.
SQL> SELECT FILE_MAP_IDX, SUBSTR(FILE_NAME,1,45),FILE_TYPE, FILE_STRUCTURE FROM V$MAP_FILE; FILE_MAP_IDX SUBSTR(FILE_NAME,1,45) FILE_TYPE FILE_STRU ------------ --------------------------------------------- ----------- --------- 0 +DATA/ORCL/DATAFILE/system.258.841314095 DATAFILE ASMFILE 1 +DATA/ORCL/DATAFILE/sysaux.257.841314021 DATAFILE ASMFILE 2 +DATA/ORCL/DATAFILE/undotbs1.260.841314161 DATAFILE ASMFILE 3 +DATA/ORCL/DATAFILE/example.266.841314219 DATAFILE ASMFILE 4 +DATA/ORCL/DATAFILE/users.259.841314161 DATAFILE ASMFILE 5 +DATA/ORCL/ONLINELOG/group_3.264.841314209 LOGFILE ASMFILE 6 +FRA/ORCL/ONLINELOG/group_3.259.841314211 LOGFILE ASMFILE 7 +DATA/ORCL/ONLINELOG/group_2.263.841314207 LOGFILE ASMFILE 8 +FRA/ORCL/ONLINELOG/group_2.258.841314207 LOGFILE ASMFILE 9 +DATA/ORCL/ONLINELOG/group_1.262.841314203 LOGFILE ASMFILE 10 +FRA/ORCL/ONLINELOG/group_1.257.841314203 LOGFILE ASMFILE 11 +DATA/ORCL/TEMPFILE/temp.265.841314217 TEMPFILE ASMFILE 12 +DATA/ORCL/CONTROLFILE/current.261.841314199 CONTROLFILE ASMFILE 13 +FRA/ORCL/CONTROLFILE/current.256.841314201 CONTROLFILE ASMFILE
Using the DBMS_STORAGE_MAP Package With Oracle ASM Files
使用DBMS_STORAGE_MAP包和Oracle ASM文件
您可以使用DBMS_STORAGE_MAP PL/SQL包中的过程来控制映射操作。例如,您可以使用DBMS_STORAGE_MAP.MAP_OBJECT过程,用于为由对象名称、所有者和类型指定的数据库对象构建映射信息。在DBMS_STORAGE_MAP之后。运行MAP_OBJECT过程后,可以创建一个查询来显示MAP_OBJECT视图中包含的映射信息。
SQL> EXECUTE DBMS_STORAGE_MAP.MAP_OBJECT('EMPLOYEES','HR','TABLE'); SQL> SELECT io.OBJECT_NAME o_name, io.OBJECT_OWNER o_owner, io.OBJECT_TYPE o_type, mf.FILE_NAME, me.ELEM_NAME, io.DEPTH, (SUM(io.CU_SIZE * (io.NUM_CU - DECODE(io.PARITY_PERIOD, 0, 0, TRUNC(io.NUM_CU / io.PARITY_PERIOD)))) / 2) o_size FROM MAP_OBJECT io, V$MAP_ELEMENT me, V$MAP_FILE mf WHERE io.OBJECT_NAME = 'EMPLOYEES' AND io.OBJECT_OWNER = 'HR' AND io.OBJECT_TYPE = 'TABLE' AND me.ELEM_IDX = io.ELEM_IDX AND mf.FILE_MAP_IDX = io.FILE_MAP_IDX GROUP BY io.ELEM_IDX, io.FILE_MAP_IDX, me.ELEM_NAME, mf.FILE_NAME, io.DEPTH, io.OBJECT_NAME, io.OBJECT_OWNER, io.OBJECT_TYPE ORDER BY io.DEPTH; O_NAME O_OWNER O_TYPE FILE_NAME ELEM_NAME DEPTH O_SIZE --------- ------- ------ ----------------------------------------- ---------------- ----- ------ EMPLOYEES HR TABLE +DATA/ORCL/DATAFILE/example.266.841314219 +/devices/diskd2 0 64 EMPLOYEES HR TABLE +DATA/ORCL/DATAFILE/example.266.841314219 +/devices/diske2 0 64
Managing Alias Names for Oracle ASM File Names
别名(别名)旨在提供一种更友好的方法来引用Oracle ASM文件,而不是使用系统生成的文件名。
可以在数据库中创建文件时为其创建别名,也可以使用ALTER DISKGROUP语句的add alias子句向现有文件添加别名。您可以在任何系统生成或用户创建的ASM目录中创建别名。别名必须包含磁盘组名;您不能在根级别(+)上创建别名。
Adding an Alias Name for an Oracle ASM File Name
为ASM文件名添加别名
使用ALTER DISKGROUP语句的ADD ALIAS子句为ASM文件名创建别名。别名必须由完整目录路径和别名本身组成。
例5-4为系统生成的文件名添加了一个新的别名。
Adding an alias name for an Oracle ASM file name
Use the ADD
ALIAS
clause of the ALTER DISKGROUP
statement to create an alias name for an Oracle ASM file name. The alias name must consist of the full directory path and the alias itself.
Example 5-4 adds a new alias name for a system-generated file name.
ALTER DISKGROUP data ADD ALIAS '+data/orcl/second.dbf' FOR '+data/orcl/datafile/mytable.342.123456789';
Renaming an Alias Name for an Oracle ASM File Name
RENAME ALIAS
clause of the ALTER DISKGROUP
statement to rename an alias for an Oracle ASM file name. The old and the new alias names must consist of the full directory paths of the alias names.ALTER DISKGROUP data RENAME ALIAS '+data/orcl/datafile.dbf' TO '+data/payroll/compensation.dbf';
Dropping an Alias Name for an Oracle ASM File Name
删除ASM文件名的别名
使用ALTER DISKGROUP语句的DROP ALIAS子句删除Oracle ASM文件名的别名。别名必须由完整目录路径和别名本身组成。别名所指向的基础文件没有改变。
ALTER DISKGROUP data DROP ALIAS '+data/payroll/compensation.dbf';
ALTER DISKGROUP data DROP ALIAS '+data/orcl/datafile/mytable.342.123456789';
Dropping Files and Associated Aliases from a Disk Group
从磁盘组删除文件和相关别名
可以使用ALTER DISKGROUP语句的DROP FILE子句从磁盘组中删除ASM文件及其相关别名。在指定要删除的文件时,必须使用完全限定的文件名或别名。当删除别名时,不会删除文件系统上的基础文件。
你可能想要删除文件的一些原因包括:
使用别名创建的文件不是Oracle托管文件。因此,它不会被自动删除。
数据库的时间点恢复可以将数据库恢复到创建表空间之前的时间。恢复不会删除表空间,但是在恢复的数据库中没有对表空间或其数据文件的引用。您可以手动删除数据文件。
在例5-8中,当从磁盘组中删除文件和别名时,将使用该文件的别名。
ALTER DISKGROUP data DROP FILE '+data/payroll/compensation.dbf';
在例5-9中,在删除文件和任何相关别名时使用Oracle托管文件(系统生成)文件名。
ALTER DISKGROUP data DROP FILE '+data/orcl/datafile/mytable.342.123456789';
Managing Disk Group Directories
管理磁盘组目录
ASM磁盘组包含系统生成的分层目录结构,用于存储ASM文件。ASM分配给每个文件的系统生成的文件名表示这个目录层次结构中的一个路径。下面是一个系统生成文件名的例子:
+data/orcl/CONTROLFILE/Current.256.541956473
加号表示ASM文件系统的根。数据目录是数据磁盘组中所有文件的父目录。orcl目录是orcl数据库中所有文件的父目录,而CONTROLFILE目录包含orcl数据库的所有控制文件。
您可以在这个层次结构中创建自己的目录来存储创建的别名。因此,除了为Oracle ASM文件提供用户友好的别名之外,还可以为这些名称提供用户友好的路径。
本节介绍如何使用ALTER DISKGROUP语句为别名创建目录结构。它还描述了如何重命名一个目录或删除一个目录。本节包含以下主题:
Creating a Directory
创建目录
使用ALTER DISKGROUP语句的ADD DIRECTORY子句为ASM文件的别名创建层次目录结构。使用斜杠(/)或反斜杠(\)字符分隔目录路径的组件。目录路径必须以磁盘组名开头,前面是一个加号(+),后面是您选择的任何子目录名。
在尝试在该目录中创建子目录或别名之前,必须存在父目录。必须在磁盘组级别下创建目录。
例5-10为磁盘组数据创建了一个层次目录,该目录可以包含别名+data/orcl/control_file1。
假设+data/orcl目录下不存在子目录,则SQL语句在示例5-11中失败。
Creating a new directory
ALTER DISKGROUP data ADD DIRECTORY '+data/orcl';
Creating a new subdirectory
ALTER DISKGROUP data ADD DIRECTORY '+data/orcl/first_dir/second_dir';
Renaming a Directory
The RENAME DIRECTORY
clause of the ALTER DISKGROUP
statement enables you to rename a directory. System-created directories (those containing system-generated names) cannot be renamed. The root level (disk group name) cannot be renamed.
ALTER DISKGROUP data RENAME DIRECTORY '+data/mydir' TO '+data/youdir';
Dropping a Directory
You can delete a directory using the DROP DIRECTORY
clause of the ALTER DISKGROUP
statement. You cannot drop a system-created directory. You cannot drop a directory containing alias names unless you also specify the FORCE
clause.
ALTER DISKGROUP data DROP DIRECTORY '+data/yourdir' FORCE;
Accessing Oracle ASM Files with the XML DB Virtual Folder
使用XML DB虚拟文件夹访问Oracle ASM文件
可以通过XML DB存储库中的一个虚拟文件夹访问Oracle ASM文件和目录
folder 文件夹
虚拟文件夹的存储库路径是/sys/asm。该文件夹是虚拟的,因为它的内容实际上并不驻留在存储库中;它们作为普通的ASM文件和目录存在。例如,/sys/asm提供了一种访问和操作Oracle asm文件和目录的方法,它使用编程api(如DBMS_XDB包)和XML DB协议(如FTP和HTTP/WebDAV)。您还可以使用ASMCMD cp命令来复制文件。
这种功能的一个典型用法是将/sys/asm看作图形用户界面(使用WebDAV协议)中的Web文件夹,然后通过拖放将数据泵转储集从Oracle asm磁盘组复制到操作系统文件系统。
您必须作为SYS之外的用户登录,并且必须获得使用XML DB协议访问/ SYS /asm的DBA角色。
注意:出于安全原因,默认情况下FTP是禁用的。这是因为IETF FTP协议规范要求密码以明文传输。禁用是通过将FTP服务器端口配置为0(0)来完成的。要启用FTP,请将FTP端口参数设置为要使用的FTP端口,例如2100。
Inside /sys/asm
The Oracle ASM virtual folder is created by default during XML DB installation. If the database is not configured to use Oracle ASM, the folder is empty and no operations are permitted on it.
The Oracle ASM virtual folder contains folders and subfolders that follow the hierarchy defined by the structure of an Oracle ASM fully qualified file name. Figure 5-1 illustrates an example of this hierarchy, which for simplicity, excludes directories created for aliases.
The folder /sys/asm
contains one subfolder for every mounted disk group, and each disk group folder contains one subfolder for each database that uses the disk group. In addition, a disk group folder might contain files and folders corresponding to aliases created by the administrator. Continuing the hierarchy, the database folders contain file type folders, which contain the Oracle ASM files.
Figure 5-1 Hierarchical Structure of Oracle ASM Folders in an XML DB Installation
Description of "Figure 5-1 Hierarchical Structure of Oracle ASM Folders in an XML DB Installation"
The following are usage restrictions on /sys/asm
:
-
You cannot create hard links to existing Oracle ASM files or directories with APIs such as
DBMS_XDB.LINK
. -
You cannot rename (move) an Oracle ASM file to another disk group or to a directory outside Oracle ASM.
You can use the directory /sys/asm
for storing the names of disk groups. You cannot store other files in this directory. Within the disk group directories under /sys/asm
, such as /sys/asm/DATA
, you can only store database files in these sub-directories. Oracle ASM rejects attempts to store non-database files in these directories.
Using DBMS_FILE Transfer Utility for Oracle ASM
The DBMS_FILE_TRANSFER
package provides procedures to copy Oracle ASM files within a database or to transfer binary files between databases that use Oracle ASM. The DBMS_FILE_TRANSFER
package has the following procedures:
-
COPY_FILE
—Reads a file from a source directory and creates a copy of the file in a destination directory. The source and destination directories can both be in a local file system or in an Oracle ASM disk group. You can also use this procedure to copy between a local file system and an Oracle ASM disk group; the copy operation is valid in either direction. -
GET_FILE
—Contacts a remote database to read a remote file and then creates a copy of the file in the local file system or Oracle ASM disk group. -
PUT_FILE
—Reads a local file or Oracle ASM disk group and contacts a remote database to create a copy of the file in the remote file system.
See Also:
Oracle Database PL/SQL Packages and Types Reference for more information about the DBMS_FILE_TRANSFER
package
Managing Disk Group Templates
Templates are used to set attributes of files created in an Oracle ASM disk group.
When a file is created, redundancy and striping attributes are set for that file based on an explicitly named template or the system template that is the default template for the file type.
When a disk group is created, Oracle ASM creates a set of default templates for that disk group. The set consists of one template for each file type (data file, control file, redo log file, and so on) that is supported by Oracle ASM. For example, a template named ONLINELOG
provides the default file redundancy and striping attributes for all redo log files written to Oracle ASM disks. Default template settings depend on the disk group type. The default template for data files for a normal redundancy disk group sets two-way mirroring, while the corresponding default template in a high redundancy disk group sets three-way mirroring. You can modify these default templates.
For example, default redundancy for the online redo log files (ONLINELOG
template) for a normal redundancy disk group is MIRROR
. In Example 4-1, this setting means that when one copy of a redo log file extent is written to a disk in failure group controller1
, a mirrored copy of the file extent is written to a disk in failure group controller2
. To support the default mirroring of a normal redundancy disk group, at least two failure groups must be defined.
Table 5-6 lists the default templates and the attributes that are associated to matching files. As the table shows, the initial redundancy value of each default template depends on the type of disk group that the template belongs to.
Using clauses of the ALTER DISKGROUP
SQL statement, you can add new templates to a disk group, modify existing ones, or drop templates. The reason to add templates is to create the right combination of attributes to meet unique requirements. You can then reference a template name when creating a file, thereby assigning desired attributes based on an individual file rather than on the file type.
This section describes how to manage disk group templates under the following topics:
See Also:
-
Oracle Database SQL Language Reference for information about the
ALTER
DISKGROUP
statement -
Oracle Database Reference for information about the
V$ASM_TEMPLATE
view which lists all of the templates known to the Oracle ASM instance
Template Attributes
Table 5-4 shows the permitted striping attribute values and allocation unit size chunks. These values correspond to the STRIPE
column of V$ASM_TEMPLATE
.
Table 5-4 Permitted values for Oracle ASM template striping attribute
Striping Attribute Value | Description |
---|---|
|
Striping in 128 KB chunks. |
|
Striping in 1 MB chunks. |
Table 5-5 shows the permitted redundancy values for Oracle ASM templates. These values correspond to the REDUND
column of V$ASM_TEMPLATE
.
Table 5-5 Permitted values for Oracle ASM template redundancy attribute
Redundancy Attribute Value | Resulting Mirroring in Normal Redundancy Disk Group | Resulting Mirroring in High Redundancy Disk Group | Resulting Mirroring in External Redundancy Disk Group |
---|---|---|---|
|
Two-way mirroring |
Three-way mirroring |
(Not allowed) |
|
Three-way mirroring |
Three-way mirroring |
(Not allowed) |
|
No mirroring |
(Not allowed) |
No mirroring |
Table 5-6 shows the initial attribute settings for some default templates. The type of mirroring associated with the Mirroring column for normal, high, and external redundancy disk groups is specified in Table 5-5. For example, the Mirror column for high redundancy disk groups displays MIRROR
in Table 5-6. In Table 5-5, the MIRROR
value for high redundancy disk groups corresponds to Three-way
mirroring
.
Table 5-6 Oracle ASM system default templates attribute settings
Template Name | File Striping | Mirroring, Normal Redundancy Disk Group | Mirroring, High Redundancy Disk Group | Mirroring, External Redundancy Disk Group | Primary Region | Mirror Region |
---|---|---|---|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Table 5-7 shows the permitted primary and mirror region values for Oracle ASM templates. These values correspond to the PRIMARY_REGION
and MIRROR_REGION
columns of V$ASM_TEMPLATE
.
Table 5-7 Permitted values for Oracle ASM template primary and mirror region attribute
Primary and Mirror Region Attribute Value | Description |
---|---|
|
Use the inner most tracks (closest to spindle) on the disk drive. |
|
Use the outermost tracks which have greater speed and higher bandwidth. |
Adding Templates to a Disk Group
To add a template to a disk group, use the ADD TEMPLATE
clause of the ALTER DISKGROUP
statement.
If the name of your new template is not listed in Table 5-6, then it is not used as a default template for database file types. To use the template, you must reference its name when creating a file.
When adding a template to a disk group, the attributes are optional. If no redundancy attribute is specified, then the value defaults to MIRROR
for a normal redundancy disk group, HIGH
for a high redundancy disk group, and UNPROTECTED
for an external redundancy disk group. If you do not specify a striping attribute, then the value defaults to COARSE
. If you do not specify a value for the primary or mirror region attributes, then the value defaults to COLD
and MIRRORCOLD
respectively.
Example 5-14 creates a new template named reliable
for the normal redundancy disk group data
.
Example 5-15 creates a new template named unreliable
that specifies UNPROTECTED
(no mirroring) for files.
Note:
Oracle discourages using unprotected files unless you have implemented hardware mirroring. The previous example is presented only to further illustrate how the attributes for templates are set.
Example 5-14 Adding a template with high redundancy to a disk group
ALTER DISKGROUP data ADD TEMPLATE reliable ATTRIBUTES (HIGH FINE);
Example 5-15 Adding a template with external redundancy to a disk group
ALTER DISKGROUP data ADD TEMPLATE unreliable ATTRIBUTES (UNPROTECTED);
See Also:
Oracle Database SQL Language Reference for more information about the ALTER DISKGROUP...ADD TEMPLATE
command
Modifying a Disk Group Template
The MODIFY TEMPLATE
clause of the ALTER DISKGROUP
statement enables you to modify the attribute specifications of an existing system default or user-defined disk group template. Only specified template attributes are changed. Unspecified properties retain their current value. When you modify an existing template, only new files created by the template reflect the attribute changes. Existing files maintain their attributes.
Example 5-16 changes the striping attribute specification of the reliable
template for disk group data
.
Example 5-16 Modifying a disk group template
ALTER DISKGROUP data MODIFY TEMPLATE reliable ATTRIBUTES (COARSE);
Dropping Templates from a Disk Group
Use the DROP TEMPLATE
clause of the ALTER DISKGROUP
statement to drop one or more templates from a disk group. You can only drop templates that are user-defined; you cannot drop system default templates.
Example 5-17 drops the previously created template unreliable
from data
:
Example 5-17 Dropping a template from a disk group
ALTER DISKGROUP data DROP TEMPLATE unreliable;
Creating Tablespaces in Oracle ASM: Specifying Attributes with Templates
Use the SQL ALTER
SYSTEM
and CREATE
TABLESPACE
statements to create a tablespace that uses a user-defined template to specify the attributes of the data file.
Example 5-18 assumes that the template (mytemplate
) has been defined.
Example 5-18 Using a user-defined template to specify attributes
ALTER SYSTEM SET DB_CREATE_FILE_DEST = '+data(mytemplate)'; CREATE TABLESPACE mytblspace;