在ASM實例中,所有的存儲於ASM磁盤組中的文件對於操作系統命令而言是不可訪問的,因此也無法使用常規的命令來操縱ASM磁盤中的文
件。所幸的是,我們有ASMCMD工具來代替操作系統命令來完成這部分工作。ASMCMD工具提供了類似於操作系統的常用命令,如ls , du ,find
,cd ,rm ,mkdir等等。藉助這些工具可以更輕鬆的完成ASM實例的相關管理工作。
有關ASM的相關參考:
1,登陸ASMCMD
[oracle@rac1 ~]$
[oracle@rac1 ~]$ env|grep ORACLE_
ORACLE_SID=+ASM1
ORACLE_BASE=/product/app/oracle
ORACLE_TERM=xterm
ORACLE_HOME=/product/app/oracle/product/10.2.0/db_1
[oracle@rac1 ~]$export ORACLE_SID=+ASM1 --啓動前要設定ORACLE_SID環境變量
[oracle@rac1 ~]$asmcmd
ASMCMD> help
asmcmd [-p] [command] --該方式可以直接完成相應的功能而不需要進入到ASMCMD提示符下
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 "help [command]" to get help on a specific ASMCMD command.
--在asmcmd命令提示符下,輸入help [命令] ,則顯示該命令幫助信息
commands:
--------
cd
du
find
help
ls
lsct
lsdg
mkalias
mkdir
pwd
rm
rmalias
2,具體用法
[oracle@rac1 ~]$ asmcmd -p ls -l --無需進入到ASMCMD命令提示符下完成相應的功能
State Type Rebal Unbal Name
MOUNTED NORMAL N N DG1/
MOUNTED NORMAL N N DG2/
MOUNTED EXTERN N N REV/
ASMCMD> ls -l --查看磁盤組的基本信息
State Type Rebal Unbal Name
MOUNTED NORMAL N N DG1/
MOUNTED NORMAL N N DG2/
MOUNTED EXTERN N N REV/
ASMCMD> ls -s --查看磁盤組的詳細信息,如磁盤大小,可用空間,扇區大小等
Sector Block AU Total_MB Free_MB Req_mir_free_MB Usable_file_MB Offline_disks Name
512 4096 1048576 3058 1498 0 749 0 DG1/
512 4096 1048576 200 98 0 49 0 DG2/
512 4096 1048576 3074 2949 0 2949 0 REV/
ASMCMD> du --查看當前目錄磁盤已使用的容量
Used_MB Mirror_used_MB
804 1541
ASMCMD> pwd --顯示當前路徑
+
ASMCMD> cd +DG1
ASMCMD> pwd
+DG1
ASMCMD> du
Used_MB Mirror_used_MB
732 1469
ASMCMD> find -t datafile +DG1/asmdb sys* --find 用於查找對象
+DG1/asmdb/DATAFILE/SYSAUX.261.734885459
+DG1/asmdb/DATAFILE/SYSTEM.259.734885389
ASMCMD> ls -l +DG1/asmdb
Type Redund Striped Time Sys Name
Y CONTROLFILE/
Y DATAFILE/
Y ONLINELOG/
Y PARAMETERFILE/
Y TEMPFILE/
N spfileasmdb.ora => +DG1/ASMDB/PARAMETERFILE/spfile.264.734886407
ASMCMD> ls -l +DG1/asmdb/spfi*
Type Redund Striped Time Sys Name
N spfileasmdb.ora => +DG1/ASMDB/PARAMETERFILE/spfile.264.734886407
ASMCMD> pwd
+DG1
ASMCMD> cd asmdb --cd 命令改變當前目錄
ASMCMD> pwd
+DG1/asmdb
ASMCMD> ls
CONTROLFILE/
DATAFILE/
ONLINELOG/
PARAMETERFILE/
TEMPFILE/
spfileasmdb.ora
ASMCMD> lsdg
State Type Rebal Unbal Sector Block AU Total_MB Free_MB Req_mir_free_MB Usable_file_MB Offline_disks Name
MOUNTED NORMAL N N 512 4096 1048576 3058 1498 0 749 0 DG1/
MOUNTED NORMAL N N 512 4096 1048576 200 98 0 49 0 DG2/
MOUNTED EXTERN N N 512 4096 1048576 3074 2949 0 2949 0 REV/
ASMCMD> mkdir +DG2/asmdb/bakfile --mkdir 創建目錄
ASMCMD> ls -l +DG2/asmdb/bakfile
ASMCMD> rm +DG2/asmdb/bakfile --rm 刪除目錄
ASMCMD> ls -l +DG2/asmdb/bakfile
asmcmd: entry 'bakfile' does not exist in directory '+DG2/asmdb/'
ASMCMD> exit --退出asmcmd命令行
3.注意
11g的asmcmd還提供新特性,cp命令。但是Oracle的ASM從設計上就不是可以存放任何東西的文件系統,只有Oracle數據庫相關的文件,比如數據文件、日誌文件、控制文件、參數文件以及備份文件等可以存儲到ASM中。