Oracle ASM(Automatic Storage Management)是一种针对Oracle数据库的存储管理技术,它负责数据的映射、切分、分配以及恢复等操作,同时也支持在不需要改变数据库结构的情况下扩大数据量。为了更好地管理磁盘和磁盘组,我们需要学会使用Oracle ASM来查看磁盘信息。
首先,我们需要登录到安装了Oracle ASM的服务器上,使用asmcmd命令来查看磁盘组的状态,如下所示:
$ asmcmd ASMCMD>lsdg State Type Rebal Sector Logical_Sector MOUNTED EXTERN N 512 512
上述命令可以查看当前磁盘组的状态和一些基本信息,例如:当前磁盘组处于已挂载(MOUNTED)状态,磁盘组类型为EXTERN,ASM是否正在执行重平衡操作(Rebal)、扇区大小(Sector)等等。
当我们想要查看具体某个磁盘的信息时,可以采用asmcmd的lun命令,例如:
ASMCMD>ls +diskgroup1 DG_DIS1/ DG_DIS2/ DG_DIS3/ DG_DIS4/ DG_DIS5/ ASMCMD>lspwgd -G diskgroup1 -P DG_DIS1 Diskgroup Name: diskgroup1 Physical Sector Size in bytes: 512 Logical Sector Size in bytes: 512 State: MOUNTED Content: NORMAL Sector Size(Bytes): 512 Mirroring Applied: N Striping Applied: Y Number of Disks: 5 Diskgroup Name : dg4 ? DISK_NUMBER : 0 ? DG_DIS1 -->Header: Signature : 0xBAADF00D Version : 01.00 Compatibility : 05.00 Diskguid : 0xE775369B34714C0FBD67F25D4FBD7D77 Oracle ASM: DiskName: DG_DIS1 GroupName: diskgroup1 Compatibility: 12.0.0.0.0 Mode: PROD State: ONLINE Path: /dev/oracleasm/disks/DG_DIS1 Label: /dev/sdb1 Allocation Unit Size(bytes): 1048576
在上述命令中,我们使用了ls命令来查看磁盘组dg1中包含的所有磁盘名称,此外我们还使用了lspwgd命令来查看磁盘DG_DIS1的详细信息,该磁盘属于磁盘组diskgroup1,状态为ONLINE。
除了asmcmd命令行工具之外,我们还可以使用SQL语句来查看磁盘组的信息。例如:
SQL>SELECT dg.name, d.path, d.total_mb, d.type, d.redundancy FROM v$asm_disk d, v$asm_diskgroup dg WHERE d.group_number = dg.group_number;
在上述SQL语句中,我们通过v$asm_disk和v$asm_diskgroup视图来查询磁盘组的基本信息,包括磁盘组名称、磁盘路径、磁盘类型、冗余度等等。
总之,Oracle ASM提供了多种不同的方法来查看磁盘组的状态和信息,我们可以通过asmcmd命令行工具或者SQL语句快速查看想要的信息,从而更好地管理我们的数据库。