管理ASM文件、目录和模板

Administering Oracle ASM Files, Directories, and Templates

ASM支持什么类型的文件?

ASM支持数据库所需的大多数文件类型。

表5-1列出了由Oracle ASM直接支持的文件类型,并列出了为文件创建提供属性的系统默认模板。表中显示的一些文件类型与特定的产品或功能相关,在本书中没有讨论。

File types supported by Oracle ASM

File TypeDefault Templates

Archive log files

ARCHIVELOG

Oracle ASM Persistent initialization parameter file (SPFILE)

ASMPARAMETERFILE

Oracle ASM Persistent initialization parameter file (SPFILE) backup

ASMPARAMETERFILEBACKUP

Audit spill files

AUDIT_SPILLFILES

Automatically generated control file backup

AUTOBACKUP

Auto-login software keystore

AUTOLOGIN_KEY_STORE

Archive log backup piece

BACKUPSET

Data file backup pieces

BACKUPSET

Data file incremental backup pieces

BACKUPSET

Change tracking file

CHANGETRACKING

Control files

CONTROLFILE

Data file copy

DATAFILE

Data files

DATAFILE

Data Guard configuration file

DATAGUARDCONFIG

Data Pump dumpset

DUMPSET

Flashback logs

FLASHBACK

Flash file

FLASHFILE

Cross-platform transportable data files incremental backup

INCR XTRANSPORT BACKUPSET

Software keystore

KEY_STORE

Oracle Cluster Registry file

OCRFILE

Redo log files

ONLINELOG

Persistent initialization parameter file (SPFILE)

PARAMETERFILE

Temporary files

TEMPFILE

Voting files

VOTINGFILE

Cross-platform transportable data files

XTRANSPORT

Cross-platform transportable data files backup

XTRANSPORT BACKUPSET

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 FormReference 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 TABLESPACECREATE 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 TypeDescriptionOracle ASM File Type TagComments

CONTROLFILE

Control files and backup control files

Current

Backup

Archive

Backup

DATAFILE

Data files and data file copies

tblspname

Name of the tablespace into which the file is added

ONLINELOG

Online logs

group_loggroup#

 

ARCHIVELOG

Archive logs

thread_thread#_seq_sequence#

 

TEMPFILE

Tempfiles

tsname

Name of the tablespace into which the file is added

BACKUPSET

Data file and archive log backup pieces; data file incremental backup pieces

spfile?_timestamp

spfile? can take one of two values: sindicates that the backup set includes the spfilenindicates that the backup set does not include the spfile.

timestamp is the time that the backup is started.

PARAMETERFILE

Persistent parameter files

spfile

Name of the SPFILE

DATAGUARDCONFIG

Data Guard configuration file

db-unique-name

Data Guard uses the value of the DB_UNIQUE_NAMEinitialization parameter.

FLASHBACK

Flashback logs

log_flashbacklog#

 

CHANGETRACKING

Block change tracking data

ctf

Used during incremental backups

DUMPSET

Data Pump dumpset

user_obj#_file#

Dump set files encode the user name, the job number that created the dump set, and the file number as part of the tag.

XTRANSPORT

Data file convert

tblspname

Name of the tablespace where the Oracle ASM metadata is added

AUTOBACKUP

Automatic backup files

spfile?_timestamp

spfile? can take one of two values: sindicates that the backup set includes the spfilenindicates that the backup set does not include the spfile.

timestamp is the time that the backup is started.

ASMPARAMETERFILE

Oracle ASM persistent parameter files

spfile

Name of the Oracle ASM SPFILE

OCRFILE

Oracle Clusterware Registry files

ocrfile

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_LISTV$MAP_ELEMENTV$MAP_EXT_ELEMENTV$MAP_FILE, V$MAP_FILE_EXTENTV$MAP_FILE_IO_STACKV$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

 Use the 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 DISKGROUPstatement. 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 follows
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:

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 ValueDescription

FINE

Striping in 128 KB chunks.

COARSE

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 ValueResulting Mirroring in Normal Redundancy Disk GroupResulting Mirroring in High Redundancy Disk GroupResulting Mirroring in External Redundancy Disk Group

MIRROR

Two-way mirroring

Three-way mirroring

(Not allowed)

HIGH

Three-way mirroring

Three-way mirroring

(Not allowed)

UNPROTECTED

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 NameFile StripingMirroring, Normal Redundancy Disk GroupMirroring, High Redundancy Disk GroupMirroring, External Redundancy Disk GroupPrimary RegionMirror Region

ARCHIVELOG

COARSE

MIRROR

MIRROR

UNPROTECTED

COLD

MIRRORCOLD

ASMPARAMETERFILE

COARSE

MIRROR

MIRROR

UNPROTECTED

COLD

MIRRORCOLD

AUDIT_SPILLFILES

COARSE

MIRROR

MIRROR

UNPROTECTED

COLD

MIRRORCOLD

AUTOBACKUP

COARSE

MIRROR

MIRROR

UNPROTECTED

COLD

MIRRORCOLD

BACKUPSET

COARSE

MIRROR

MIRROR

UNPROTECTED

COLD

MIRRORCOLD

CHANGETRACKING

COARSE

MIRROR

MIRROR

UNPROTECTED

COLD

MIRRORCOLD

CONTROLFILE

FINE

HIGH

MIRROR

UNPROTECTED

COLD

MIRRORCOLD

DATAFILE

COARSE

MIRROR

MIRROR

UNPROTECTED

COLD

MIRRORCOLD

DATAGUARDCONFIG

COARSE

MIRROR

MIRROR

UNPROTECTED

COLD

MIRRORCOLD

DUMPSET

COARSE

MIRROR

MIRROR

UNPROTECTED

COLD

MIRRORCOLD

FLASHBACK

COARSE

MIRROR

MIRROR

UNPROTECTED

COLD

MIRRORCOLD

FLASHFILE

COARSE

MIRROR

MIRROR

UNPROTECTED

COLD

MIRRORCOLD

KEY_STORE

COARSE

MIRROR

MIRROR

UNPROTECTED

COLD

MIRRORCOLD

OCRFILE

COARSE

MIRROR

MIRROR

UNPROTECTED

COLD

MIRRORCOLD

ONLINELOG

COARSE

MIRROR

MIRROR

UNPROTECTED

COLD

MIRRORCOLD

PARAMETERFILE

COARSE

MIRROR

MIRROR

UNPROTECTED

COLD

MIRRORCOLD

TEMPFILE

COARSE

MIRROR

MIRROR

UNPROTECTED

COLD

MIRRORCOLD

VOTINGFILE

COARSE

MIRROR

MIRROR

UNPROTECTED

COLD

MIRRORCOLD

XTRANSPORT

COARSE

MIRROR

MIRROR

UNPROTECTED

COLD

MIRRORCOLD

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 ValueDescription

COLDMIRRORCOLD

Use the inner most tracks (closest to spindle) on the disk drive.

HOTMIRRORHOT

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 DISKGROUPstatement.

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;
原文地址:https://www.cnblogs.com/zykLove/p/12197516.html