Oracle工具(Oracle Tools) – ASMCMD

时间:2022-09-02 16:28:36

ASMCMD工具从10g开始就有,DBA可以使用ASMCMD工具像在"Linux终端操作"一样管理ASM,我之所以加上引号,是因为比起Linux强大丰富的操作系统命令ASMCMD的命令是微不足道的,尽管如此,直到11g R2,已经提供的命令足够让DBA欣慰且放心使用。听说Oracle Database 12c将是Oracle重磅之作,不知ASMCMD工具进一步ASM有多大的进步呢?

ASMCMD工具参考文档

  • ASM Command-Line Utility
  • About ASMCMD

ASMCMD能做什么?
ASMCMD是一个命令行工具,操作方法非常类似于使用Linux终端(Terminal),我们可以用它来管理ASM实例、ASM磁盘组、磁盘组文件访问控制、文件和目录、磁盘组的模板、ACFS等。

下面的示例大部分都是基于我的一套测试RAC环境的,部分用到其他环境比如我的Oracle Restart数据库,我将会另行说明。
首先看一下ASM文件的目录及命名:

[grid@rac1 ~]$ whoami
grid
[grid@rac1 ~]$ echo $ORACLE_HOME
/u01/app/11.2.0/grid
[grid@rac1 ~]$ echo $ORACLE_SID
+ASM1
[grid@rac1 ~]$ asmcmd spget
+CRS/rac-cluster/asmparameterfile/registry.253.798176627
-- 先别特别在意命令的使用与其含义

registry.253.798176627就是我的这套RAC所使用的asm参数文件,而+CRS/rac-cluster/asmparameterfile为存放目录。
ASM文件目录和命名遵循如下规则:
+<DiskGroupName>/<并不固定>/<FileType>/<FileTypeTag.FileNumber.incarnation>
这个路径看似这么复杂,怎么记住?我的回答是,DBA不需要记住这些规则,而且你也很难记,尤其是ASM文件名。
ASM文件管理采用的是OMF特性,ASM文件名都是自动生成的。
稍微解释一下目录结构:从我的服务器参数文件目录中+CRS是ASM磁盘组的名称;rac-cluster,这个位置有可能是DatabaseName,或者是asm、db_name-cluster,或者还可能是其他;asmparameterfile,是文件类型,从字面意思可以看出是参数文件,我们常看到的类型还有CONTROLFILE、DATAFILE、ONLINELOG、PARAMETERFILE、TEMPFILE等。
下面看几种情况:

ASMCMD [+] > find --type controlfile +mydata/www *
+mydata/www/CONTROLFILE/Current.260.798182901

ASMCMD [+] > find --type onlinelog +mydata/www *
+mydata/www/ONLINELOG/group_1.261.798182903
+mydata/www/ONLINELOG/group_2.262.798182905
+mydata/www/ONLINELOG/group_3.265.798183095
+mydata/www/ONLINELOG/group_4.266.798183097

我的Oracle Restart(基于ASM的)数据库环境
ASMCMD> spget
+MSOV/asm/asmparameterfile/registry.253.792007413

ASMCMD> find --type datafile +msdata/maa/ *
+msdata/maa/DATAFILE/L.266.798569345
+msdata/maa/DATAFILE/L.267.798570165
+msdata/maa/DATAFILE/L.268.798572257
+msdata/maa/DATAFILE/SYSAUX.261.792009871
+msdata/maa/DATAFILE/SYSTEM.260.792009857
+msdata/maa/DATAFILE/UNDOTBS1.262.792009883
+msdata/maa/DATAFILE/USERS.264.792009897

我的另一套RAC
[grid@pos1 ~]$ asmcmd spget

+OCR_VOTE/pos-cluster/asmparameterfile/registry.253.786289775

从上面的多种输出中可已看出,文件名和目录是不区分大小写的,但是它们保持了创建时候的大小写状态。
另外,我们还会发现ASM磁盘组里经典的+符号,在这个目录结构里+就是根节点,仿佛UNIX的/。

我们同样可以使用*和%两个通配符,各自代表0个或者更多,能够使用通配符的命令有cd、du、find、ls、lsattr、lsdg、lsdsk、lsgrp、lsusr和rm。
以前在某本书上看过:ASMCMD操作的时候,如果通配符匹配的目录返回的结果只有一个,那么操作正常,而返回结果为多个,就返回错误。
但我觉得这不是绝对,比如看下面的例子:

ASMCMD> ls -d mydata/www/*file*
CONTROLFILE/
DATAFILE/
PARAMETERFILE/
TEMPFILE/
spfileluocs.ora

ASMCMD> lsdg MS*
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      2314     2262                0            2262              0             N  MSARCH/
MOUNTED  EXTERN  N         512   4096  1048576      9015     7015                0            7015              0             N  MSDATA/
MOUNTED  NORMAL  N         512   4096  1048576      4467     4288             1489            1399              0             N  MSOV/

ASMCMD> cd MS*
ASMCMD-8005: MS*: ambiguous

– 可见ls、lsdg等命令是对多个目录也是可以操作的,而cd却不可以,这和Linux操作一样。
对于文件,没有什么限制,比如rm -rf *的时候就是对多个文件操作。

ASMCMD运行环境
ASMCMD可以运行在交互模式或者非交互模式下。要运行ASMCMD需要满足几个条件:
1)登录到包含ASM实例的主机,一般我们通过grid用户去登录,而且grid用户拥有SYSASM或者SYSDBA权限,其中SYSASM是最高执行权限,就像DB中SYSDBA;
2)确保grid用户下的ORACLE_HOME和ORACLE_SID,已添加到环境变量,包括$ORACLE_HOME/bin(指$GRID_HOME);
3)在ASM实例没有启动的时候,ASMCMD只限使用startup、lsdsk、help、exit几个命令,其他命令返回错误消息。

ASMCMD交互模式
使用语法:
asmcmd [-V]
asmcmd [-v] [-a connect_type] [-p]

参数说明:
-V : 显示ASMCMD版本
-v : 显示一些命令额外的信息帮助用户诊断问题
-a connect_type : 指定访问ASM实例连接的权限,可以使SYSASM或者SYSDBA,默认是SYSASM
-p : 显示当前的目录信息

下面是几个测试:

[grid@rac1 ~]$ asmcmd -V
asmcmd version 11.2.0.3.0

[grid@rac1 ~]$ asmcmd -a sysdba
WARNING:option 'a' is deprecated for 'asmcmd'
please use 'privilege'

[grid@rac1 ~]$ asmcmd -p -v
WARNING: Tracing level not specified
Default level of tracing is enabled.
ASMCMD [+] > cd crs
ASMCMD [+crs] > ls
rac-cluster/
ASMCMD [+crs] > pwd
+crs

ASMCMD非交互模式
使用方法:
asmcmd command options

command : ASMCMD的命令
options : command的选项

比如看下面几个示例:

获得ASM参数文件:
[grid@rac1 ~]$ asmcmd spget
+CRS/rac-cluster/asmparameterfile/registry.253.798176627

列出ASM实例的ASM磁盘组:
[grid@rac1 ~]$ asmcmd ls -l
State    Type    Rebal  Name
MOUNTED  EXTERN  N      CRS/
MOUNTED  EXTERN  N      MYDATA/

获得MYDATA磁盘组的基本信息
[grid@rac1 ~]$ asmcmd lsdsk -t -G MYDATA
Create_Date          Mount_Date           Repair_Timer  Path
2012-11-01 04:42:27  2012-11-01 05:23:12  0             /dev/oracleasm/disks/MYDATA

如何获得帮助?
交互模式下:
ASMCMD> help <command>

非交互模式下:
asmcmd help <command>

ASMCMD命令
下面开始详细介绍ASMCMD命令:

ASMCMD命令类型

  • 实例管理 : startup、shutdown、dsget、dsset、lsct、lsop、lspwusr、orapwusr、spbackup、spcopy、spget、spmove、spset
  • 磁盘组管理 :chdg、chkdg、dropdg、iostat、lsattr、lsdg、lsdsk、lsod、md_backup、md_restore、mkdg、mount、offline、online、rebal、remap、setattr、umount
  • 文件管理: cd、cp、du、find、ls、lsof、mkalias、pwd、rm、rmalias
  • 文件访问控令: chgrp、chmod、chown、groups、grpmod、lsgrp、lsusr、mkgrp、mkusr、passwd、rmgrp、rmusr
  • 上面几个类型操作命令是DBA经常接触到的,下面的类型可能少接触:
  • 模板管理: chtmpl、lstmpl、mktmpl、rmtmpl
  • 卷管理: volcreate、voldelete、voldisable、volenable、volinfo、volresize、volset、volstat

下面逐一介绍:

ASMCMD实例管理命令

  • dsget : 获得ASM实例diskstring的值
  • dsset : 设置ASM实例diskstring的值
  • lsct : 列出当前ASM客户端的信息
  • lsop : 列出当前对磁盘组或者ASM实例的操作
  • lspwusr : 列出ASM密码文件包括的用户
  • orapwusr : 添加、DROP或者改变ASM密码用户
  • shutdown : 关闭ASM实例
  • spbackup : 备份ASM SPFILE
  • spcopy : 拷贝ASM SPFILE
  • spget : 获得ASM SPFILE的位置
  • spmove : 移动ASM SPFILE
  • spset : 设置ASM SPFILE的位置
  • start : 启动ASM实例

查看示例:

登录:
[grid@rac1 ~]$ asmcmd -p

查看diskstring的设置:
ASMCMD [+] > dsget
parameter:/dev/oracleasm/disks/*
profile:/dev/oracleasm/disks/*

查看当前连接到ASM实例的会话
ASMCMD [+] > lsct
DB_Name  Status     Software_Version  Compatible_version  Instance_Name  Disk_Group
+ASM     CONNECTED        11.2.0.3.0          11.2.0.3.0  +ASM1          CRS       
www      CONNECTED        11.2.0.3.0          11.2.0.0.0  luocs1         MYDATA   

获得ASM SPFILE:
ASMCMD [+] > spget  
+CRS/rac-cluster/asmparameterfile/registry.253.798176627

备份ASM SPFILE:
ASMCMD [+] > spbackup +CRS/rac-cluster/asmparameterfile/registry.253.798176627 /home/grid/asmpfile.ora
-- 这样备份出来的ASM SPFILE是不能用于启动ASM实例的,我们若要实现启动实例,必须使用spset指定备份文件。
ASMCMD [+] > spset /home/grid/asmpfile.ora

拷贝SPFILE
ASMCMD [+] > spcopy -u +CRS/rac-cluster/asmparameterfile/registry.253.798176627 /home/grid/asmcopy.ora
-- 加上-u参数之后copy出来的asm spfile可以启动ASM实例,不然spset设置才可以。

ASMCMD磁盘组管理命令

  • chdg : 改变磁盘组,添加、删除或者Rebalance
  • chkdg : 检查或者修复磁盘组
  • dropdg : DROP磁盘组
  • iostat : 显示磁盘的I/O统计信息
  • lsattr :  列出磁盘组的属性
  • lsdg : 列出磁盘组和它们的信息
  • lsdsk : 列出ASM磁盘
  • lsod : 列出打开的设备
  • md_backup : 创建一个已加载磁盘组的元数据的备份
  • md_restore : 从元数据备份恢复磁盘组
  • mkdg : 创建磁盘组
  • mount : 挂载磁盘组
  • offline : 使磁盘或者故障组脱机
  • online :  使磁盘或者故障组在线
  • rebal : Rebalance磁盘组
  • remap : 在一个磁盘的物理块范围重新配置数据
  • setattr : 在磁盘组设置属性
  • umount : 卸载磁盘组

ASMCMD文件管理命令
基本和Linux操作系统命令功能一样

  • cd : 改变当前位置到指定目录
  • cp : 能够在磁盘组之间、组潘祖和文件系统之间拷贝文件
  • du : 显示在指定的ASM目录下,文件或者文件夹及其子目录占用的总的磁盘空间
  • find : 列出查找特定目录路径下所有匹配成功的结果
  • ls : 列出ASM目录的内容、特定文件的属性或者所有磁盘组的名称和属性
  • lsof : 列出打开的文件
  • mkalial : 创建一个系统生成文件名的别名
  • mkdir : 创建ASM目录
  • pwd : 显示当前ASM目录的路径
  • rm : 删除指定的ASM文件或者目录
  • rmalias : 删除指定的别名,保留别名指向的文件

这里注意,ASMCMD中没有mv命令的。

这里看一个比较好玩的命令cp:

首先我们查看控制文件在哪里
ASMCMD [+] > find --type controlfile mydata/www *
+mydata/www/CONTROLFILE/Current.260.798182901

创建一个ASM目录
ASMCMD [+] > mkdir mydata/cp

然后我们cp拷贝一下
ASMCMD [+] > cp +mydata/www/CONTROLFILE/Current.260.798182901 +mydata/cp/  
copying +mydata/www/CONTROLFILE/Current.260.798182901 -> +mydata/cp/Current.260.798182901
ASMCMD-8016: copy source->'+mydata/www/CONTROLFILE/Current.260.798182901' and target->'+mydata/cp/Current.260.798182901' failed
ORA-15056: additional error message
ORA-15046: ASM file name '+mydata/cp/Current.260.798182901' is not in single-file creation form
ORA-06512: at "SYS.X$DBMS_DISKGROUP", line 413
ORA-06512: at line 3 (DBD ERROR: OCIStmtExecute)
-- 发现报错了,那么看一下过程:
copying +mydata/www/CONTROLFILE/Current.260.798182901 -> +mydata/cp/Current.260.798182901,我执行cp命令之后ASMCMDcp打算将
Current.260.798182901拷贝到+mydata/cp/下,名字同为Current.260.798182901,我们手动执行:

ASMCMD [+] > cp +mydata/www/CONTROLFILE/Current.260.798182901 +mydata/cp/Current.260.798182901
copying +mydata/www/CONTROLFILE/Current.260.798182901 -> +mydata/cp/Current.260.798182901
ASMCMD-8016: copy source->'+mydata/www/CONTROLFILE/Current.260.798182901' and target->'+mydata/cp/Current.260.798182901' failed
ORA-15056: additional error message
ORA-15046: ASM file name '+mydata/cp/Current.260.798182901' is not in single-file creation form
ORA-06512: at "SYS.X$DBMS_DISKGROUP", line 413
ORA-06512: at line 3 (DBD ERROR: OCIStmtExecute)
-- 发现问题依然,这表示ASMCMDcp是不支持同名文件拷贝的,这原因其实是因为ASM采用OMF特性来自动化管理文件,它对于不需要的ASM文件会自动清除的。

所以我们需要改变目标对象:
ASMCMD [+] > cp +mydata/www/CONTROLFILE/Current.260.798182901 +mydata/cp/control.bak
copying +mydata/www/CONTROLFILE/Current.260.798182901 -> +mydata/cp/control.bak

ASMCMD文件访问控制命令

  • chgrp : 改变文件或者列出文件的用户组
  • chmod : 改变文件或者列出文件的权限
  • chown : 改变文件或者列出文件的所有者
  • groups : 列出用户对应的用户组
  • grpmod : 从存在的用户组添加或者移除用户
  • lsgrp : 列出用户组
  • lsusr : 列出用户
  • mkgrp : 创建新的用户组
  • mkusr : 创建用户
  • passwd : 修改用户密码
  • rmgrp : 删除用户组
  • rmusr : 删除用户

ASMCMD模板管理命令

  • chtmpl : 改变模板的属性
  • lstmpl : 列出磁盘组的模板
  • mktmpl : 添加模板到磁盘组
  • rmtmpl : 从磁盘组移除模板

下面是我整理的使用ASMCMD命令与输出结果:

ASM实例的启动和关闭
-- 启动
startup的时候,可以将ASM实例启动到nomount或者mount状态。
asmcmd> startup --nomount --pfile asm_init.ora

$ asmcmd startup --nomount

-- 关闭
如果数据库实例正在访问ASM磁盘组,那么ASM实例是不能正常关闭的
可以 --abort方式强制关闭。

asmcmd> shutdown
asmcmd> shutdown --abort

-- 特权用户的管理
特权用户:sysdbasysoper或者sysasm中的一个
通过orapwesr命令可以创建、删除、修改ASM实例中的特权用户

//列出特权用户
rac01 ->> asmcmd
ASMCMD [+] > lspwusr
Username sysdba sysoper sysasm 
     SYS   TRUE    TRUE   TRUE 
 ASMSNMP   TRUE   FALSE  FALSE 

//添加
ASMCMD [+] > orapwusr --add --privilege sysasm luocs
**输入密码

ASMCMD [+] > lspwusr
Username sysdba sysoper sysasm 
     SYS   TRUE    TRUE   TRUE 
 ASMSNMP   TRUE   FALSE  FALSE 
   LUOCS  FALSE   FALSE   TRUE 

//用SQL命令查看
[root@rac01 bin]# su - grid
rac01 ->> sqlplus "luocs as sysasm"
SQL> select * from v$pwfile_users;

USERNAME                       SYSDB SYSOP SYSAS
------------------------------ ----- ----- -----
SYS                            TRUE  TRUE  TRUE
ASMSNMP                        TRUE  FALSE FALSE
LUOCS                          FALSE FALSE TRUE

//修改特权用户口令
ASMCMD [+] > orapwusr --modify --password luocs
Enter password: ******

//删除
ASMCMD [+] > orapwusr --delete luocs

-- 参数文件的管理
//获得存储位置
ASMCMD [+] > spget
+luocs_CRS1/rac-scan/asmparameterfile/registry.253.771399069

//设置新的存储位置
ASMCMD [+] > spset +luocs_DATA/asm/asmparameterfile/asmspfile.ora

//备份
ASMCMD [+] > spbackup +luocs_CRS1/rac-scan/asmparameterfile/registry.253.771399069 /u01/spfilebak.ora
ASMCMD [+] > spbackup +luocs_CRS1/rac-scan/asmparameterfile/registry.253.771399069 +luocs_CTL/spfilebak.ora
前面的参数  参数文件的完整存储路径
后面的参数  备份文件的存储路径

SQL> host ls /u01/spfile*
/u01/spfilebak.ora

ASMCMD [+] > ls luocs_CTL/
ASM/
control01.ctl
spfilebak.ora

//复制
ASMCMD [+] > spcopy -u /u01/spfilebak.ora +luocs_REDO/tempspfile.ora
前面的参数  参数文件的完整存储路径
后面的参数  新生成文件的路径
-u参数加上后下次重启会读取

//移动
ASMCMD [+] > spmove +luocs_REDO/tempspfile.ora +luocs_DATA/tempspfile.ora

ASMCMD [+] > spget
+luocs_DATA/tempspfile.ora
//以最后一次设置的参数文件为主


-- ASM磁盘组
1)磁盘组信息的查看
ASMCMD [+] > lsdg luocs_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      7325     4280                0            4280              0             N  luocs_DATA/

2)查看磁盘组中的磁盘、或者系统中可用的磁盘。
ASMCMD [+] > lsdsk -G luocs_data
Path
ORCL:HK_DATA

//获得磁盘组中所有磁盘的I/O信息,包括在每个磁盘上读和写得次数、所用的时间和数据量等信息
ASMCMD [+] > lsdsk --statistics -G luocs_data
  Reads   Write  Read_Errs  Write_Errs  Read_time  Write_Time   Bytes_Read  Bytes_Written  Voting_File  Path
1110867  204421          0           0   9699.904   17870.898  18571560448     3466596352            N  ORCL:HK_DATA

//系统中的“候选磁盘”
ASMCMD [+] > lsdsk --candidate -p
Group_Num  Disk_Num      Incarn  Mount_Stat  Header_Stat  Mode_Stat  State   Path

//查看磁盘组中被打开的磁盘
ASMCMD [+] > lsod
Instance Process                           OSPID Path          
2        oracle@rac02.luocs.com (DBW0)      3115  ORCL:HK_CRS1  
2        oracle@rac02.luocs.com (DBW0)      3115  ORCL:HK_CTL   
2        oracle@rac02.luocs.com (DBW0)      3115  ORCL:HK_DATA  
2        oracle@rac02.luocs.com (DBW0)      3115  ORCL:HK_FLASH 
2        oracle@rac02.luocs.com (DBW0)      3115  ORCL:HK_REDO  
2        oracle@rac02.luocs.com (GMON)      3125  ORCL:HK_ARC   
2        oracle@rac02.luocs.com (GMON)      3125  ORCL:HK_CRS1  
2        oracle@rac02.luocs.com (GMON)      3125  ORCL:HK_CTL   
2        oracle@rac02.luocs.com (GMON)      3125  ORCL:HK_DATA  
2        oracle@rac02.luocs.com (GMON)      3125  ORCL:HK_FLASH 
2        oracle@rac02.luocs.com (GMON)      3125  ORCL:HK_REDO  
2        oracle@rac02.luocs.com (LGWR)      3117  ORCL:HK_ARC   
2        oracle@rac02.luocs.com (LGWR)      3117  ORCL:HK_CRS1  
2        oracle@rac02.luocs.com (LGWR)      3117  ORCL:HK_CTL   
2        oracle@rac02.luocs.com (LGWR)      3117  ORCL:HK_DATA  
2        oracle@rac02.luocs.com (LGWR)      3117  ORCL:HK_FLASH 
2        oracle@rac02.luocs.com (LGWR)      3117  ORCL:HK_REDO  
2        oracle@rac02.luocs.com (RBAL)      3123  ORCL:HK_ARC   
2        oracle@rac02.luocs.com (RBAL)      3123  ORCL:HK_ARC   
2        oracle@rac02.luocs.com (RBAL)      3123  ORCL:HK_CRS1  
2        oracle@rac02.luocs.com (RBAL)      3123  ORCL:HK_CRS1  
2        oracle@rac02.luocs.com (RBAL)      3123  ORCL:HK_CTL   
2        oracle@rac02.luocs.com (RBAL)      3123  ORCL:HK_CTL   
2        oracle@rac02.luocs.com (RBAL)      3123  ORCL:HK_DATA  
2        oracle@rac02.luocs.com (RBAL)      3123  ORCL:HK_DATA  
2        oracle@rac02.luocs.com (RBAL)      3123  ORCL:HK_FLASH 
2        oracle@rac02.luocs.com (RBAL)      3123  ORCL:HK_FLASH 
2        oracle@rac02.luocs.com (RBAL)      3123  ORCL:HK_REDO  
2        oracle@rac02.luocs.com (RBAL)      3123  ORCL:HK_REDO  
2        oracle@rac02.luocs.com (TNS V1-V3) 24377 ORCL:HK_ARC   
2        oracle@rac02.luocs.com (TNS V1-V3) 3160  ORCL:HK_ARC   
2        oracle@rac02.luocs.com (TNS V1-V3) 24377 ORCL:HK_CRS1  
2        oracle@rac02.luocs.com (TNS V1-V3) 24377 ORCL:HK_CTL   
2        oracle@rac02.luocs.com (TNS V1-V3) 24377 ORCL:HK_DATA  
2        oracle@rac02.luocs.com (TNS V1-V3) 24377 ORCL:HK_FLASH 
2        oracle@rac02.luocs.com (TNS V1-V3) 24377 ORCL:HK_REDO 

//具体磁盘组被哪些进程访问
ASMCMD [+] > lsod -G luocs_data
Instance Process                           OSPID Path         
2        oracle@rac02.luocs.com (DBW0)      3115  ORCL:HK_DATA 
2        oracle@rac02.luocs.com (GMON)      3125  ORCL:HK_DATA 
2        oracle@rac02.luocs.com (LGWR)      3117  ORCL:HK_DATA 
2        oracle@rac02.luocs.com (RBAL)      3123  ORCL:HK_DATA 
2        oracle@rac02.luocs.com (RBAL)      3123  ORCL:HK_DATA 
2        oracle@rac02.luocs.com (TNS V1-V3) 24377 ORCL:HK_DATA 

//具体某进程正在访问磁盘,比如LGWR
ASMCMD [+] > lsod -G luocs_data --process LGWR
Instance Process                      OSPID Path         
2        oracle@rac02.luocs.com (LGWR) 3117  ORCL:HK_DATA 

ASMCMD [+] > lsod --process lgwr hdisk
Instance Process                      OSPID Path          
2        oracle@rac02.luocs.com (LGWR) 3117  ORCL:HK_ARC   
2        oracle@rac02.luocs.com (LGWR) 3117  ORCL:HK_CRS1  
2        oracle@rac02.luocs.com (LGWR) 3117  ORCL:HK_CTL   
2        oracle@rac02.luocs.com (LGWR) 3117  ORCL:HK_DATA  
2        oracle@rac02.luocs.com (LGWR) 3117  ORCL:HK_FLASH 
2        oracle@rac02.luocs.com (LGWR) 3117  ORCL:HK_REDO 

//查看磁盘组的属性信息
ASMCMD [+] > lsattr -l -G luocs_data
Name                     Value       
access_control.enabled   FALSE       
access_control.umask     066         
au_size                  1048576     
cell.smart_scan_capable  FALSE       
compatible.asm           11.2.0.0.0  
compatible.rdbms         10.1.0.0.0  
disk_repair_time         3.6h        
sector_size              512  

3)磁盘组的挂接与卸载
ASMCMD [+] > mount -a
ASMCMD [+] > mount luocs_data

ASMCMD [+] > umount -a
ASMCMD [+] > umount luocs_data

-- 使磁盘脱机,脱机的磁盘中数据将无法访问。
ASMCMD [+] > offline -G luocs_data -D hk_data -t 2h
//2小时候hk_data脱机,hk_data是luocs_data磁盘组内的磁盘
//也可以用分钟(m)为单位

-- 联机
ASMCMD [+] > online -G luocs_data -a
ASMCMD [+] > online -G luocs_data -D hk_data

//查看在磁盘组上正在进行的操作
ASMCMD [+] > lsop
Group_Name  Dsk_Num  State  Power 

4)磁盘组的读写信息的获得
//磁盘组中各个磁盘的I/O情况
ASMCMD [+] > iostat -G luocs_data
Group_Name  Dsk_Name  Reads        Writes      
luocs_DATA   HK_DATA   18874275328  3523860480  
ASMCMD [+] > iostat -t -G luocs_data
Group_Name  Dsk_Name  Reads        Writes      Read_Time  Write_Time  
luocs_DATA   HK_DATA   18874603008  3523920896  9791.454   18116.62    
ASMCMD [+] > iostat -e -G luocs_data
Group_Name  Dsk_Name  Reads        Writes      Read_Err  Write_Err  
luocs_DATA   HK_DATA   18875454976  3523986944  0         0  
ASMCMD [+] > iostat --io -G luocs_data
Group_Name  Dsk_Name  Reads    Writes  
luocs_DATA   HK_DATA   1129563  207830  

ASMCMD [+] > find --type controlfile +luocs_data/luocs *
+luocs_data/luocs/CONTROLFILE/Current.256.771409411
// controlfile datafile onlinelog archivelog tempfile backupset

ASMCMD [+] > find --type onlinelog +luocs_data/luocs *
+luocs_data/luocs/ONLINELOG/group_1.265.771929975
+luocs_data/luocs/ONLINELOG/group_1.270.771925111
+luocs_data/luocs/ONLINELOG/group_2.258.771930159
+luocs_data/luocs/ONLINELOG/group_3.257.771930371
+luocs_data/luocs/ONLINELOG/group_4.266.771930555
+luocs_data/luocs/ONLINELOG/group_5.272.771931311
+luocs_data/luocs/ONLINELOG/group_6.271.771931229
+luocs_data/luocs/ONLINELOG/redo01_a.log
+luocs_data/luocs/ONLINELOG/redo02_a.log
+luocs_data/luocs/ONLINELOG/redo03_a.log
+luocs_data/luocs/ONLINELOG/redo04_a.log
+luocs_data/luocs/ONLINELOG/redo05_a.log
+luocs_data/luocs/ONLINELOG/redo06_a.log

ASMCMD [+] > find --type archivelog +luocs_arc/luocs *
+luocs_arc/luocs/ARCHIVELOG/2012_01_01/thread_1_seq_71.256.771419679
+luocs_arc/luocs/ARCHIVELOG/2012_01_01/thread_1_seq_72.260.771419889
+luocs_arc/luocs/ARCHIVELOG/2012_01_01/thread_2_seq_1.257.771419881
+luocs_arc/luocs/ARCHIVELOG/2012_01_01/thread_2_seq_2.258.771419885
+luocs_arc/luocs/ARCHIVELOG/2012_01_01/thread_2_seq_3.259.771419887

//查看目录下所有文件的所有者、所属用户组、权限以及名称等信息
ASMCMD [+] > ls --permission +luocs_data/luocs/tempfile
User  Group  Permission  Name
              rw-rw-rw-  TEMP.262.771409697