asmcmd是ASM附带的一个工具,主要用来管理ASM磁盘组上的文件,类似于linux的bash shell操作。在这里我们将详细的介绍asmcmd的命令。
一、asmcmd的使用
[oracle@node1 ~]$ 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)
当我们使用asmcmd时为什么会报这样的错误呢,主要是因为ASM实例没有启动,那我们就来验证一下。
[oracle@node1 ~]$ crs_stat -t
Name Type Target State Host
------------------------------------------------------------
ora....SM2.asm application OFFLINE OFFLINE
ora....E1.lsnr application ONLINE ONLINE node1
ora.node1.gsd application ONLINE ONLINE node1
ora.node1.ons application ONLINE ONLINE node1
ora.node1.vip application ONLINE ONLINE node1
ora....SM1.asm application ONLINE ONLINE node2
ora....E2.lsnr application ONLINE ONLINE node2
ora.node2.gsd application ONLINE ONLINE node2
ora.node2.ons application ONLINE ONLINE node2
ora.node2.vip application ONLINE ONLINE node2
ora.racdb.db application ONLINE ONLINE node1
ora....b1.inst application ONLINE ONLINE node2
ora....b2.inst application OFFLINE OFFLINE
注:我安装集群的时候是在node2上安装的,所以instance1,ASM1是自动分配到node2上了,而instance2,ASM2是自动分配到node1上了。
现在我们就先来启动ASM实例,这有两种方法
方法一:
[oracle@node1 ~]$ export ORACLE_SID=+ASM2
[oracle@node1 ~]$ sqlplus / as sysdba
SQL> startup
ASM instance started
Total System Global Area 92274688 bytes
Fixed Size 1217884 bytes
Variable Size 65890980 bytes
ASM Cache 25165824 bytes
ASM diskgroups mounted
方法二:使用srvctl命令
[oracle@node1 ~]$ srvctl start asm -n node1
现在来验证一下asm实例启动情况:
SQL> select instance_name,status from v$instance;
INSTANCE_NAME STATUS
---------------- ------------
+ASM2 STARTED
SQL> select NAME,STATE from v$asm_diskgroup;
NAME STATE
------------------------------ -----------
DATA MOUNTED
asm实例已经启动、asm磁盘组已经挂载。
二、asm命令的介绍
[oracle@node1 ~]$ asmcmd -p
ASMCMD [+] >
ASMCMD [+] > help //使用help命令来查看所有asmcmd命令
commands:
--------
cd //用于切换目录
du //显示磁盘空间的使用情况
find //用于查找文件
help //用于显示asmcmd的所有命令
ls //显示目录下的内容
lsct //显示目录连接的数据库实例
lsdg //显示已挂载的磁盘组
mkalias //创建一个系统产生的文件的别名
mkdir //创建asm目录
pwd //显示当前目录的路径
rm //删除目录或文件,如果是别名,会删除别名和别名所对应的文件
rmalias //删除指定的别名
三、asmcmd命令的使用
[oracle@node1 ~]$ asmcmd -p
ASMCMD [+] > lsct //查看实例的连接情况,(如果数据库实例没有启动,不会显示连接情况)
DB_Name Status Software_Version Compatible_version Instance_Name
+ASM CONNECTED 10.2.0.1.0 10.2.0.0.0 +ASM2
racdb CONNECTED 10.2.0.1.0 10.2.0.1.0 racdb2
ASMCMD [+data] > lsdg //查看磁盘组的挂载情况
ASMCMD [+data] > lsdgState Type Rebal Unbal Sector Block AU Total_MB Free_MB Req_mir_free_MB Usable_file_MB Offline_disks Name
MOUNTED EXTERN N N 512 4096 1048576 7629 6197 0 6197 0 DATA/
ASMCMD [+data] > du //显示磁盘的使用情况
Used_MB Mirror_used_MB
1338 1338
ASMCMD [+data] > cd racdb
ASMCMD [+data/racdb] > pwd
+data/racdb
ASMCMD [+data/racdb] > ls
CONTROLFILE/
DATAFILE/
ONLINELOG/
PARAMETERFILE/
TEMPFILE/
spfileracdb.ora
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/29457434/viewspace-1130027/
,如需转载,请注明出处,否则将追究法律责任。