One small article on ASMCMD commands which can help you in day to day ASM Command-Line tasks.
1. Let’s check ASMCMD’s version.
[oracle@dbnode1 ~]$ asmcmd -V asmcmd version 11.2.0.0.0
Let’s enter into ASMCMD Command-Line utility.
[oracle@dbnode1 ~]$ asmcmd ASMCMD>
Now We are in ASMCMD Command-Line utility. We will now see few asmcmd commands about diskgroups.
2. To list the diskgroups we have.
ASMCMD> lsdg State Type Rebal Sector Block AU Total_MB Free_MB Req_mir_free_MB Usable_file_MB Offline_disks Voting_files Name MOUNTED EXTERN N 512 4096 1048576 18426 15138 0 15138 0 N DATA/
So here we see information like State, Type of redundancy, Total and Free MB, Name, etc.. But with lsdg command, we won’t get the details of the diskgroups which is unmounted from ASM.
3. To check details of all the diskgroups, i.e. Mounted and Dismounted, We would use lsdg command with ‘ – – discovery’ argument.
ASMCMD> lsdg --discovery State Type Rebal Sector Block AU Total_MB Free_MB Req_mir_free_MB Usable_file_MB Offline_disks Voting_files Name MOUNTED EXTERN N 512 4096 1048576 18426 15138 0 15138 0 N DATA/ DISMOUNTED N 512 4096 0 0 0 0 0 0 N FRA/
So now we can also see the details of diskgroup which is Dismounted, i.e. FRA
4. Let’s try mounting FRA diskgroup.
ASMCMD> mount FRA
Command executed without an error.
Let’s list diskgroups now.
ASMCMD> lsdg State Type Rebal Sector Block AU Total_MB Free_MB Req_mir_free_MB Usable_file_MB Offline_disks Voting_files Name MOUNTED EXTERN N 512 4096 1048576 18426 15138 0 15138 0 N DATA/ MOUNTED EXTERN N 512 4096 1048576 8189 7654 0 7654 0 N FRA/
Now the diskgroup FRA is mounted, both the diskgroups have EXTERNAL Redundancy, which means ASM will not perform any Mirroring and Striping of data and will keep only one copy and keep redundancy work on external third party RAID solution.
I’ll cover Types of Redundancy ASM offers in details in future post.
5. To list a particular diskgroup.
ASMCMD> lsdg DATA State Type Rebal Sector Block AU Total_MB Free_MB Req_mir_free_MB Usable_file_MB Offline_disks Voting_files Name MOUNTED EXTERN N 512 4096 1048576 18426 15138 0 15138 0 N DATA/
6. To list Mounted ASM disks.
ASMCMD> lsdsk Path /dev/oracleasm/disks/DATA01 /dev/oracleasm/disks/FRA01
7. To check details of ASM disks.
ASMCMD> lsdsk -k Total_MB Free_MB OS_MB Name Failgroup Library Label UDID Product Redund Path 18426 15138 18426 DATA01 DATA01 ASM Library - Generic Linux, version 2.0.12 (KABI_V2) DATA01 UNKNOWN /dev/oracleasm/disks/DATA01 8189 7654 8189 FRA01 FRA01 ASM Library - Generic Linux, version 2.0.12 (KABI_V2) FRA01 UNKNOWN /dev/oracleasm/disks/FRA01
Here we can see total size, free size and OS level size in MB. Label and path of the disk. We can see Redund Status is UNKNOWN which means there is no ASM redundancy available for these disks.
8. To check above information for a particular disk.
ASMCMD> lsdsk -k -G DATA Total_MB Free_MB OS_MB Name Failgroup Library Label UDID Product Redund Path 18426 15138 18426 DATA01 DATA01 ASM Library - Generic Linux, version 2.0.12 (KABI_V2) DATA UNKNOWN /dev/oracleasm/disks/DATA01
Now it’s showing details of “DATA01” disk only.
9. To get Input/Output State details of disks.
ASMCMD> iostat Group_Name Dsk_Name Reads Writes DATA DATA01 5450240 12764160 FRA FRA01 98304 4096
Here Group_Name shows, which ASM diskgroup this disk belongs to. We can see Reads/Writes information in bytes.
10. To check above details for a particular Disk.
ASMCMD> iostat -G FRA Group_Name Dsk_Name Reads Writes FRA FRA01 98304 4096
11. To retrieve information of Reads/Writes Error.
ASMCMD> iostat -e Group_Name Dsk_Name Reads Writes Read_Err Write_Err DATA DATA01 5450240 13280256 0 0 FRA FRA01 98304 4096 0 0
This will show you IO erros of disk.
12. To get Time Statistics, Read Time & Write Time.
ASMCMD> iostat -e -t Group_Name Dsk_Name Reads Writes Read_Err Write_Err Read_Time Write_Time DATA DATA01 5450240 13624320 0 0 .811 1.37 FRA FRA01 98304 4096 0 0 .011 0
13. To get information about OracleASM ServerParameter file.
ASMCMD> spget +DATA/rc-scan/asmparameterfile/registry.253.986765603
This will show you the location of spfile for ASM instance.
14. To List the current directory.
ASMCMD> ls -l State Type Rebal Name MOUNTED EXTERN N DATA/ MOUNTED EXTERN N FRA/
15. To navigate to sub-directory.
ASMCMD> cd DATA ASMCMD> ls -l Type Redund Striped Time Sys Name Y PRODDB/ Y rc-scan/
Here we can see sub-directories under DATA directory.
‘Y’ flag under Sys colunmn shows, sub-directories are owned by SYS user.
16. To print current directory path in ASMCMD Command-Line utility, connect ASMCMD using -p argument.
[oracle@dbnode1 ~]$ asmcmd -p ASMCMD [+] > We can see It is showing '+' that is Root Directory.
Let’s navigate to sub-directory.
ASMCMD [+] > ls DATA/ FRA/ ASMCMD [+] > cd +DATA/PRODDB/DATAFILE ASMCMD [+DATA/PRODDB/DATAFILE] > ls EXAMPLE.264.986768097 SYSAUX.257.986767995 SYSTEM.256.986767993 TBS.269.986769231 UNDOTBS1.258.986767995 UNDOTBS2.265.986768163 USERS.259.986767995
Here we can see current directory “ASMCMD [+DATA/PRODDB/DATAFILE] >” Even after navigating to subdirectory.
We are now in datafile directory of PRODDB database.
17. To check permissions on file.
ASMCMD [+DATA/PRODDB/DATAFILE] > ls --permission User Group Permission Name rw-rw-rw- EXAMPLE.264.986768097 rw-rw-rw- SYSAUX.257.986767995 rw-rw-rw- SYSTEM.256.986767993 rw-rw-rw- TBS.269.986769231 rw-rw-rw- UNDOTBS1.258.986767995 rw-rw-rw- UNDOTBS2.265.986768163 rw-rw-rw- USERS.259.986767995
18. To check disk usage.
ASMCMD [+DATA] > du Used_MB Mirror_used_MB 3154 3154
19. To find file with name.
ASMCMD [+DATA] > find + system* +DATA/PRODDB/DATAFILE/SYSTEM.256.986767993
Here we found file containing system in its name.
20. To list currently open files by all instances in ASM Use Below Command.
ASMCMD [+] > lsof DB_Name Instance_Name Path PRODDB PRODDB +DATA/PRODDB/CONTROLFILE/current.265.987302781 PRODDB PRODDB +DATA/PRODDB/DATAFILE/sysaux.269.987302597 PRODDB PRODDB +DATA/PRODDB/DATAFILE/system.261.987302651 PRODDB PRODDB +DATA/PRODDB/DATAFILE/undotbs1.268.987302719 PRODDB PRODDB +DATA/PRODDB/DATAFILE/users.272.987302717 PRODDB PRODDB +DATA/PRODDB/ONLINELOG/group_1.264.987302785 PRODDB PRODDB +DATA/PRODDB/ONLINELOG/group_2.263.987302789 PRODDB PRODDB +DATA/PRODDB/ONLINELOG/group_3.262.987302793 PRODDB PRODDB +DATA/PRODDB/TEMPFILE/temp.273.987302813 PRODDB PRODDB +FRA/PRODDB/CONTROLFILE/current.256.987302781 PRODDB PRODDB +FRA/PRODDB/ONLINELOG/group_1.259.987302787 PRODDB PRODDB +FRA/PRODDB/ONLINELOG/group_2.258.987302791 PRODDB PRODDB +FRA/PRODDB/ONLINELOG/group_3.257.987302795
These are some ASMCMD commands which I could found useful for day to day activities.
Very useful commands and expecting exadata and golden gate
Hi
It’s very useful. Can you please also provide how to copy the data files from ASM to ASM and ASM to local drive
Thanks
Ruthvik
Good Work