【翻譯自mos文章】儘管指定了目的地,asmcmd cp命令還是在 +DATA/ASM 下建立檔案,mosasmcmd
儘管指定了目的地,asmcmd cp命令還是在 +DATA/ASM 下建立檔案
參考原文:
ASMCMD Cp Creates Files In +DATA/ASM Instead Of Destination Specified (Doc ID 1488934.1)
適用於:
Oracle Database - Enterprise Edition - Version 11.2.0.3 and later
Information in this document applies to any platform.
癥狀:
在11.2.0.3版本上,使用asmcmd的cp命令 從檔案系統拷貝檔案到asm裡邊,
在asm裡邊建立的檔案 卻建立在了 +DATA/ASM/DATAFILE 下邊,並且在+DATA/DB/DATAFILE下邊建立了一個該檔案的別名。
原因:
這個行為歸因於別名(alias).儘管oracle db 開發部門正在 對bug 12640351做一個改進,
該bug是 12640351 : ASMCMD NEEDS PARAMETER TO COPY FILES INTO A GIVEN SYSTEM ALIAS
解決方案:
使用DBMS_FILE_TRANSFER or RMAN 來複製檔案,直到 下面所說的在將來的release中被實現。
一個需求是拷貝資料庫檔案(資料檔案,控制檔案等等)到asm中的指定目錄下。
因此,需要為cp命令添加一個額外的參數來指定system alias.
你拷貝一個檔案到asm中,asm會在 +DISKGROUP/your_specific_path/ 下建立一個別名,該別名指向的檔案是被拷貝到+DISKGROUP/ASM/..下的。
雖然該檔案應該在 +DISKGROUP/your_specific_path/ 下。如下是一個例子:
ASMCMD> cp /oracle/C15/sapbackup/cntrlC15.dbf +DATA/C15/CONTROLFILE/cntrlC15.dbf
copying /oracle/C15/sapbackup/cntrlC15.dbf ->
+DATA/C15/CONTROLFILE/cntrlC15.dbf
ASMCMD> ls -l
Type Redund Striped Time Sys Name
CONTROLFILE UNPROT FINE FEB 03 08:00:00 Y Current.295.737125033
N cntrlC15.dbf => +DATA/ASM/CONTROLFILE/cntrlC15.dbf.332.742121853
oracle db 開發部門正在找一個方法:要麼拷貝檔案到正確的目錄 或者系統別名(不是 '+/ASM/...'),要麼 添加cp時 一個參數。
同時,變通的方法是使用DBMS_FILE_TRANSFER or RMAN,這兩個工具會拷貝檔案到正確的目的地。
linux 中 ASM命令作用
oracle 10R2推出了asmcmd這個工具,可以用來管理asm儲存上的檔案。
1.使用asmcmd命令必須先啟動asm執行個體,不然會有以下報錯:rac2-> asmcmd -p
ORA-01034: ORACLE not available
ORA-27101: shared memory realm does not exist
Linux Error: 2: No such file or directory (DBD ERROR: OCISessionBegin)2.使用asmcmd必須先指定ORACLE_HOME和ORACLE_SID,注意此處ORACLE_SID是asm的sid,不然會報錯:rac2-> asmcmd -p
ORA-01034: ORACLE not available
ORA-27101: shared memory realm does not exist
Linux Error: 2: No such file or directory (DBD ERROR: OCISessionBegin)3.asmcmd命令帶p參數和不帶p參數的作用:
帶p,使用asmcmd將顯示當前路徑:rac2-> asmcmd -p
ASMCMD [+] > ls
DG1/
RECOVERDEST/
ASMCMD [+] > cd DG1
ASMCMD [+DG1] > ls
DEVDB/
ASMCMD [+DG1] > cd DEVDB
ASMCMD [+DG1/DEVDB] >不帶p,不顯示當前路徑:rac2-> asmcmd
ASMCMD> ls
DG1/
RECOVERDEST/
ASMCMD> cd DG1
ASMCMD> ls
DEVDB/
ASMCMD> cd DEVDB
ASMCMD>4.其他相關參數,可使用help查看ASMCMD [+] > help
asmcmd [-p] [command]
The environment variables ORACLE_HOME and ORACLE_SID determine the
instance to which the program connects, and ASMCMD establishes a
bequeath connection to it, in the same manner as a SQLPLUS / AS
SYSDBA. The user must be a member of the SYSDBA group.
Specifying the -p option allows the current directory to be displayed
in the command prompt, like so:
ASMCMD [+DATAFILE/ORCL/CONTROLFILE] >
[command] specifies one of the following commands, along with its
parameters.
Type "h......餘下全文>>