Oracle ASM命令行工具asmcmd命令及其使用方法

asmcmd 是 Oracle ASM(Automatic Storage Management)的一个命令行工具,用于直接管理和操作 ASM 实例和磁盘组。以下是一些常用的 asmcmd 命令及其使用方法的简要说明:

一、基本命令

1.1、启动 asmcmd

[grid@racdb2:/home/grid]$asmcmd
ASMCMD> 

-- 或者,如果您以特定用户身份运行(例如 `grid` 用户),可以使用:
su - grid

asmcmd

1.2 、查看当前路径

-- 当前路径+
ASMCMD> pwd
+
-- 当前路径+DATA
ASMCMD> cd DATA
ASMCMD> pwd
+DATA

1.3、切换目录

-- 切换目录到+DGDATA
ASMCMD> cd +DGDATA

-- 查看当前路径
ASMCMD> pwd
+DGDATA

在 ASM 中,根目录用 + 表示。例如,切换到某个磁盘组的根目录:

   cd +mydg

1.4、列出目录内容

ls

-- 示例
[grid@racdb2:/home/grid]$asmcmd
ASMCMD> ls
RACDB/
racdbscan/

[grid@racdb2:/home/grid]$asmcmd ls
DATA/
DGDATA/
DGRECOVERY/
DGSYSTEM/
GRID2/

要列出详细信息(包括文件大小、权限等),可以使用:

ls -ls
[grid@racdb2:/home/grid]$asmcmd
ASMCMD> ls -ls
Type  Redund  Striped  Time  Sys  Block_Size  Blocks  Bytes  Space  Name
                             Y                                      RACDB/
                             Y                                      racdbscan/

-- 也可以不进入ASM命令模式下操作
[grid@racdb2:/home/grid]$asmcmd ls -ls
State    Type    Rebal  Sector  Logical_Sector  Block       AU  Total_MB  Free_MB  Req_mir_free_MB  Usable_file_MB  Offline_disks  Voting_files  Name
MOUNTED  NORMAL  N         512             512   4096  4194304      3072     1900             1024             438              0             Y  DATA/
MOUNTED  EXTERN  N         512             512   4096  4194304      2048      432                0             432              0             N  DGDATA/
MOUNTED  EXTERN  N         512             512   4096  4194304      4096     3916                0            3916              0             N  DGRECOVERY/
MOUNTED  EXTERN  N         512             512   4096  4194304      8192     2836                0            2836              0             N  DGSYSTEM/
MOUNTED  NORMAL  N         512             512   4096  4194304      3072     2472             1024             724              0             N  GRID2/

二、磁盘组管理

2.1、列出所有磁盘组

ASMCMD> lsdg
State    Type    Rebal  Sector  Logical_Sector  Block       AU  Total_MB  Free_MB  Req_mir_free_MB  Usable_file_MB  Offline_disks  Voting_files  Name
MOUNTED  NORMAL  N         512             512   4096  4194304      3072     1900             1024             438              0             Y  DATA/
MOUNTED  EXTERN  N         512             512   4096  4194304      2048      432                0             432              0             N  DGDATA/
MOUNTED  EXTERN  N         512             512   4096  4194304      4096     3916                0            3916              0             N  DGRECOVERY/
MOUNTED  EXTERN  N         512             512   4096  4194304      8192     2836                0            2836              0             N  DGSYSTEM/
MOUNTED  NORMAL  N         512             512   4096  4194304      3072     2472             1024             724              0             N  GRID2/

2.2、列出磁盘组中的磁盘

lsdsk -G <diskgroup_name>

例如:

 lsdsk -G mydg

2.3、查看特定磁盘(ASM Disk)的大小信息

要查看构成磁盘组的单个磁盘的大小,可以使用以下查询:

SYS@racdb2> SELECT name, total_mb, free_mb, (total_mb - free_mb) used_mb FROM v$asm_diskgroup;

NAME                             TOTAL_MB    FREE_MB    USED_MB
------------------------------ ---------- ---------- ----------
DATA                                 3072       1900       1172
DGDATA                               2048        432       1616
DGRECOVERY                           4096       3916        180
DGSYSTEM                             8192       2836       5356
GRID2                                3072       2472        600

其中name是磁盘组的名称,total_mb表示磁盘组的总容量(以 MB 为单位),free_mb表示磁盘组的可用容量,used_mb是已使用的容量。通过这个查询,你可以清楚地了解每个磁盘组的存储使用情况。

2.4、挂载磁盘组

   mount <diskgroup_name>

例如:

   mount mydg

2.5、卸载磁盘组

   umount <diskgroup_name>

例如:

   umount mydg

三、文件管理

3.1 、显示文件占用的磁盘空间

du <file_or_directory>

ASMCMD> pwd
+

ASMCMD> du
Used_MB      Mirror_used_MB
   6810                7012

例如:

--    du +mydg/myfile.dbf

ASMCMD> du +DGDATA/RACDB/DATAFILE/testusertbs.261.1178133947
Used_MB      Mirror_used_MB
      0                   0

3.2、删除文件

rm <file>

例如:

rm +mydg/myfile.dbf

3.3、创建别名

mkalias <alias_name> FOR <file_name>

例如:

mkalias myalias FOR +mydg/myfile.dbf

3.4、删除别名

rmalias <alias_name>

例如:

rmalias myalias

四、磁盘管理

虽然 asmcmd 不直接用于添加或删除物理磁盘(这通常通过操作系统级别的命令或 Oracle Enterprise Manager 完成),但您可以查看磁盘的状态和属性。

4.1、列出所有磁盘**

ASMCMD> lsdsk
Path
/dev/sdb
/dev/sdc
/dev/sdd
/dev/sde
/dev/sdf
/dev/sdg
/dev/sdh
/dev/sdi
/dev/sdj
ASMCMD> exit
[grid@racdb2:/home/grid]$asmcmd lsdsk
Path
/dev/sdb
/dev/sdc
/dev/sdd
/dev/sde
/dev/sdf
/dev/sdg
/dev/sdh
/dev/sdi
/dev/sdj

4.2、查看磁盘组的属性

lsattr -l -G <diskgroup_name>

例如:

lsattr -l -G mydg
[grid@racdb2:/home/grid]$asmcmd
ASMCMD> lsattr -l -G DATA
Name                        Value
access_control.enabled      FALSE
access_control.umask        066
appliance._partnering_type  GENERIC
ate_conversion_done         true
au_size                     4194304
cell.smart_scan_capable     FALSE
cell.sparse_dg              allnonsparse
compatible.asm              19.0.0.0.0
compatible.rdbms            10.1.0.0.0
content.check               FALSE
content.type                data
content_hardcheck.enabled   FALSE
disk_repair_time            12.0h
failgroup_repair_time       24.0h
idp.boundary                auto
idp.type                    dynamic
logical_sector_size         512
phys_meta_replicated        true
preferred_read.enabled      FALSE
scrub_async_limit           1
scrub_metadata.enabled      TRUE
sector_size                 512
thin_provisioned            FALSE
vam_migration_done          true

[grid@racdb2:/home/grid]$asmcmd lsattr -l -G DATA
Name                        Value
access_control.enabled      FALSE
access_control.umask        066
appliance._partnering_type  GENERIC
ate_conversion_done         true
au_size                     4194304
cell.smart_scan_capable     FALSE
cell.sparse_dg              allnonsparse
compatible.asm              19.0.0.0.0
compatible.rdbms            10.1.0.0.0
content.check               FALSE
content.type                data
content_hardcheck.enabled   FALSE
disk_repair_time            12.0h
failgroup_repair_time       24.0h
idp.boundary                auto
idp.type                    dynamic
logical_sector_size         512
phys_meta_replicated        true
preferred_read.enabled      FALSE
scrub_async_limit           1
scrub_metadata.enabled      TRUE
sector_size                 512
thin_provisioned            FALSE
vam_migration_done          true

4.3、查看磁盘I/O信息,DATA为磁盘组名

[grid@sgcracdb2 ~]$ asmcmd lsdsk --statistics -G DATA


 Reads   Write  Read_Errs  Write_Errs    Read_time  Write_Time  Bytes_Read  Bytes_Written  Voting_File  Path
1344966  134613          0           0  1205.274707   185.49928  6502797312     1910693888            Y  /dev/sdb
  96736  100339          0           0   100.346839  144.279242  1534566400     1666269184            Y  /dev/sdc
  81117  162253          0           0    79.850107  216.041288  1298251776     2194731008            Y  /dev/sdd

或者简要显示读写,包括ASM磁盘列表

[grid@sgcracdb2 ~]$ asmcmd iostat -G DATA
Group_Name  Dsk_Name   Reads       Writes
DATA        DATA_0000  6502797312  1910693888
DATA        DATA_0001  1534566400  1666269184
DATA        DATA_0002  1298251776  2194731008

4.4、查看特定磁盘(ASM Disk)的大小信息

要查看构成磁盘组的单个磁盘的大小,可以使用以下查询:

SYS@racdb1> set linesize 300
SYS@racdb1> run
  1  SELECT dg.name as diskgroup_name, d.name as disk_name, d.total_mb, d.free_mb, (d.total_mb - d.free_mb) used_mb
  2  FROM v$asm_disk d
  3* JOIN v$asm_diskgroup dg ON d.group_number = dg.group_number

DISKGROUP_NAME                 DISK_NAME                        TOTAL_MB    FREE_MB    USED_MB
------------------------------ ------------------------------ ---------- ---------- ----------
DGRECOVERY                     DGRECOVERY_0000                      4096       3916        180
DGDATA                         DGDATA_0000                          2048        432       1616
DGSYSTEM                       DGSYSTEM_0000                        8192       2836       5356
GRID2                          GRID2_0002                           1024        824        200
GRID2                          GRID2_0001                           1024        824        200
GRID2                          GRID2_0000                           1024        824        200
DATA                           DATA_0002                            1024        632        392
DATA                           DATA_0001                            1024        628        396
DATA                           DATA_0000                            1024        640        384

9 rows selected.

此处run命令,可以参考我的这个文章
https://blog.csdn.net/zxrhhm/article/details/141400539?ops_request_misc=%257B%2522request%255Fid%2522%253A%25227b15f721888f197528ef059f04c0b5ed%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fblog.%2522%257D&request_id=7b15f721888f197528ef059f04c0b5ed&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2blogfirst_rank_ecpm_v1~rank_v31_ecpm-1-141400539-null-null.nonecase&utm_term=run&spm=1018.2226.3001.4450

五、其他命令

5.1、显示当前 ASM 客户端

lsct

5.2、显示 ASM 操作

lsop

5.3、备份 ASM SPFILE

spbackup

5.4、拷贝 ASM SPFILE

spcopy

5.5、移动 ASM SPFILE

spmove

5.6、设置 ASM SPFILE 的位置

spset

六、注意事项

  • 在使用 asmcmd 之前,请确保您有足够的权限来执行所需的命令。
  • 谨慎使用删除命令,因为删除操作通常是不可逆的。
  • 某些命令可能需要特定的磁盘组或文件名称作为参数,请确保您提供了正确的名称。

这些命令提供了对 Oracle ASM 的基本管理功能。如果您需要执行更复杂的任务,可能需要结合使用 SQL*Plus 和其他 Oracle 管理工具。

你可能感兴趣的:(oracle,数据库)