 |
|
asmcmd tips
Oracle Tips by Burleson Consulting |
When making the decision to bypass the JFS
buffers with raw devices, the problem has always been the management
of the "raw" disk files, which are read directly by Oracle, into
Oracle data buffers, bypassing the OS overhead. For details on
using ASM, I recommend the book "Oracle
RAC and Grid" by Madhu Tumma and Mile Ault.
Oracle introduced Automatic Storage Management (ASM) to
simplify Oracle data management, enforce the SAME (Stripe And Mirror Everywhere,
RAID10), and provide a platform for file sharing in RAC and Grid computing.
Managing raw datafiles with asmcmd
The 10g release 2 has introduced an ASM command line
utility dibbed "asmcmd" to act as a DMCL (device media control language), to
manage the interface between the ASM logical data view and the physical disk
files.
The asmcmd interface is launched by first setting the
environment for +ASM, then calling it with the asmcmd command. The idea of this
tool is to make administering the ASM files similar to administering standard
operating system files.
Invoking asmcmd
The asmcmd utility is located in $ORACLE_HOME/bin/asmcmd and
it should already be pathed into your UNIX/Linux environment. We start
asmcmd by setting $ORACLE_SID to the ASM instance with +ASM, and we can them
execute asmcmd. You can use the "?" or "help" command to display all
asmcmd commands:
root>
export ORACLE_SID=+ASM
root> asmcmd
ASMCMD> help
You can run
the list data groups (lsdg) ASM command from a bash shell script
to quickly see the disk space usage:
#!/bin/bash
. /home/oracle/set_oraenv
sid="+ASM1"
echo "Check Space on "$sid
export ORACLE_SID=$sid
asmcmd << EOF
lsdg
EOF
This is an example of an asmcmd session:

Trying
out the asmcmd utility.
asmcmd command examples
The asmcmd command line interface is very similar to
standard UNIX/Linux commands, but it only manages files at the OS level.
The asmcmd utility supports all common Linux commands:
ASMCMD>
ls -alt -- list directory contents
ASMCMD>
cd -- change directory
ASMCMD>
mkdir -- create (make)directory
ASMCMD>
du -- display directory space
ASMCMD>
find -- standard UNIX find command
ASMCMD>
rm -- remove file/directory
ASMCMD>
lsdg -- list diskgroups
ASMCMD>
pwd -- display current directory
Plus, we see some Oracle-only asmcmd commands:
ASMCMD>
lsct -- list all connected Oracle instances
For a list of common Linux commands for Oracle, see the
Oracle Linux command poster or Jon Emmon's book "Oracle
Shell Scripting".
Using asmcmd with ASM commands
For internal operations against the ASM database you need other commands such as
"alter diskgroup".

Deleting
an orphaned file from the ASM instance.
You can also use asmcmd to delete files using the standard
rm command:

Deleting
an orphaned file using asmcmd.
Set asmcmd prompt display
You can invoke asmcmd with the -p option to display the
current path, very similar to the UNIX/Linux.
PS1="
`hostname`*\${ORACLE_SID}-\${PWD}
>"
export PS1
fred:/u01/app/oracle/admin>
asmcmd command line history
The asmcmd utility
does not provide a command history with the up-arrow key. With rlwrapinstalled,
this can be fixed by adding the following entry to the ~oracle/.bashrc file:
alias asmcmd='rlwrap asmcmd'
 |
If you like Oracle tuning, see the book "Oracle
Tuning: The Definitive Reference", with 950 pages of tuning tips and
scripts.
You can buy it direct from the publisher for 30%-off and get
instant access to the code depot of Oracle tuning scripts. |