Oracle database 10gR2 provides two new options to access and manage Automatic Storage Management (ASM) files and related information via command line interface - asmcmd and ASM ftp. This article will talk about asmcmd and provide sample Linux shell script to demonstrate the asmcmd in action.
asmcmd can be used by Oracle database administrators to query and manage their ASM systems. Oracle Support Services engineers can use asmcmd to easily retrieve ASM related info for diagnosing and debugging purposes.
asmcmd can be used against ASM versions 10gR1 (10.1.0.n) and 10gR2 (10.2.0.n). In ASM version 10.2 asmcmd is provided by default ASM installation.
To use asmcmd in ASM version 10.1 environment we can just copy relevant files from 10.2 installation into the 10.1 environment as follows.
Linux/UNIX:
Copy/ftp asmcmd and asmcmdcore from 10.2 install into 10.1 $ORACLE_HOME/bin , where $ORACLE_HOME is the oracle home where ASM is installed. These two files should be owned by the oracle user and the dba group, and have the following permissions:
asmcmd: 550
asmcmdcore: 440
Windows:
Copy/ftp asmcmd.bat and asmcmdcore from 10.2 install into %ORACLE_HOME%/bin, where %ORACLE_HOME% is the oracle home where ASM is installed.
ASMCMD - ASM command line utility
Reference summary of asmcmd commands.
cd Changes the current directory to the specified directory.
du Displays the total disk space occupied by ASM files in the
specified ASM directory and all its subdirectories, recursively.
exit Exits ASMCMD.
脚本示例:
1. Default output
[oracle@rac1 bin]$ ./asm.sh
ASM instance +ASM1 manages the following disk group(s):
==================================
DATA
FRA
2. Report on disk space for database dave
[oracle@rac1 bin]$ ./asm.sh -db dave -space
ASM instance +ASM1 manages the following disk group(s):
==================================
DATA
FRA
Space usage by database dave in disk group DATA:
==================================
Used_MB Mirror_used_MB
226 226
Space usage by database dave in disk group FRA:
==================================
Used_MB Mirror_used_MB
3185 3185
3. Report all files for database dave
[oracle@rac1 bin]$ ./asm.sh -db dave -files
ASM instance +ASM1 manages the following disk group(s):
==================================
DATA
FRA
+ASM1 files for database dave:
==================================
+DATA/dave/ONLINELOG/
+DATA/dave/ONLINELOG/group_1.261.746989315
+DATA/dave/ONLINELOG/group_2.262.746989325
+DATA/dave/ONLINELOG/group_3.265.746989333
+DATA/dave/ONLINELOG/group_4.266.746989343
+DATA/dave/PARAMETERFILE/
+DATA/dave/PARAMETERFILE/spfile.268.746989771
+DATA/dave/PARAMETERFILE/spfile.269.746989859
+DATA/dave/spfiledave.ora
+FRA/dave/ARCHIVELOG/
+FRA/dave/ARCHIVELOG/2011_03_29/
+FRA/dave/ARCHIVELOG/2011_03_29/thread_1_seq_1.270.747082809
+FRA/dave/ARCHIVELOG/2011_03_29/thread_2_seq_1.269.747068457
...
+FRA/dave/ARCHIVELOG/2011_04_21/thread_1_seq_36.332.749084429
+FRA/dave/ARCHIVELOG/2011_04_21/thread_2_seq_28.331.749080839
+FRA/dave/ONLINELOG/
+FRA/dave/ONLINELOG/group_1.257.746989321
+FRA/dave/ONLINELOG/group_2.258.746989329
+FRA/dave/ONLINELOG/group_3.259.746989339
+FRA/dave/ONLINELOG/group_4.260.746989347
4. Report on space and all files for database dave
[oracle@rac1 bin]$ ./asm.sh -space -db dave -files
Some minor issues and usage warnings for asmcmd version 10.2.0.1.
1. When using asmcmd non interactively (e.g. in a shell scripts) it may be easier to use % (not *) for wildcard matching, to avoid shell substitution issues.
2. asmcmd does not support wildcard substitution in CD command. This will be addressed in later versions of asmcmd.
3. 'asmcmd du' always reports "Mirror_used_MB" space for all ASM disk groups. If the disk group is not mirrored, "Used_MB" and "Mirror_used_MB" values would be the same (represening the taken disk space in megabytes). In a normal redundancy disk group (i.e. with one mirror) the space reported under "Mirror_used_MB" would be double the ammout reported under "Used_MB". Similarly, for the triple mirrored disk group we would expect the three times the space reported under "Mirror_used_MB".