ASM檔案別名的分析

趙宇發表於2008-05-27

今天用RMAN把一個本地磁碟的檔案COPY到ASM,起了一樣的名字:

RMAN>copy datafile 6 to '+DISK_GROUP2/TEST/TEST.DBF';

我們都知道ASM檔名字的格式是固定的:

+group/dbname/file type/tag.file.incarnation

我們實際到ASM內部看一下,它做了什麼:

C:\Documents and Settings\oracle>set ORACLE_SID=+ASM

C:\Documents and Settings\oracle>asmcmd
ASMCMD> ls
DISK_GROUP1/
DISK_GROUP2/
RMAN_GROUP/
ASMCMD> cd disk_group2
ASMCMD> ls
DEVDB/
TEST/
ASMCMD> cd test
ASMCMD> ls
test.dbf
ASMCMD> ls -l
Type      Redund  Striped  Time              Sys  Name
                                             N    test.dbf => +DISK_GROUP2/DEVDB/DATAFILE/TEST.290.655818003
ASMCMD>

我們發現它在RMAN指定的目錄上建立了ASM的別名,指向實際的datafile,也就是ASM檔案為了避免重名和OMF特性,必須指定它的格式,那我們再為它建立個別名是否可以呢?

SQL> alter diskgroup DISK_GROUP2 add alias '+DISK_GROUP2/TEST/TEST2.DBF' for '+DISK_GROUP2/DEVDB/DATAFILE/TEST.290.655818003';
alter diskgroup DISK_GROUP2 add alias '+DISK_GROUP2/TEST/TEST2.DBF' for '+DISK_GROUP2/DEVDB/DATAFILE/TEST.290.655818003'
*
ERROR at line 1:
ORA-15032: not all alterations performed
ORA-15176: file '+DISK_GROUP2/DEVDB/DATAFILE/TEST.290.655818003' already has an
alias associated with it

它會認為這個別名已經存在,修改別名是否可以呢?

SQL> alter diskgroup DISK_GROUP2 rename alias '+DISK_GROUP2/TEST/TEST.DBF' to '+DISK_GROUP2/TEST/TEST2.DBF';

Diskgroup altered.

呵呵,可以

ASMCMD> ls -l
Type      Redund  Striped  Time              Sys  Name
                                             N    TEST2.DBF => +DISK_GROUP2/DEVDB/DATAFILE/TEST.290.655818003

 

 

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/175005/viewspace-312584/,如需轉載,請註明出處,否則將追究法律責任。

相關文章