如题,在Windows系统下维护ASM磁盘提供存储设备的Oracle数据库时,该如何确定ASM磁盘对应的磁盘设备呢?
1 在操作系统层面看到下述磁盘信息,Disk 0是操作系统盘,Disk 1,Disk 2是2块ASM磁盘:
2 从ASM实例里,看到磁盘组、磁盘的信息如下:
SQL> select name,total_mb,free_mb,state from v$asm_diskgroup; NAME TOTAL_MB FREE_MB STATE ------------------------------ ---------- ---------- ----------- ORADATA 206849 32661 MOUNTED SQL> select name,total_mb,free_mb,state from v$asm_disk; NAME TOTAL_MB FREE_MB STATE ------------------------------ ---------- ---------- -------- 206849 0 NORMAL ORADATA_0001 206849 32661 NORMAL SQL> select name,total_mb,free_mb,state,path from v$asm_disk; NAME TOTAL_MB FREE_MB STATE PATH ------------------------------ ---------- ---------- -------- -------------------- 206849 0 NORMAL \\.\ORCLDISKORADATA0 ORADATA_0001 206849 32661 NORMAL \\.\ORCLDISKDATA0 SQL>
上述看到的信息已经是对ORADATA磁盘组执行过drop disk之后看到的信息。
那么接下来,如果想要OS级别移除ORADATA磁盘里path为\\.\ORCLDISKORADATA0的磁盘的话,该如何确定该磁盘对应OS级别的磁盘呢?究竟是Disk 1还是Disk2呢?
3 方法1:
C:\Users\Administrator>asmtool -list NTFS \Device\Harddisk0\Partition1 278973M ORCLDISKDATA0 \Device\Harddisk1\Partition1 206849M ORCLDISKORADATA0 \Device\Harddisk2\Partition1 206849M C:\Users\Administrator>
方法2:
通过DBCA进入ASM管理[Oracle 10g版本,11g应该使用ASMCA]之后,选择给磁盘stamp disk之后,也可以看到下述信息:
进而,均可以可定path为\\.\ORCLDISKORADATA0的ASM磁盘对应于OS上的Disk2。
4 通过上述第3步骤移除磁盘的stamp操作之后,看到的信息如下:
此时,已经从ASM实例里看不到ASM磁盘的信息了。
5 最终,从OS级别删除磁盘Disk 2的卷信息,分区信息之后,如下:
附:在Linux上,可以直接通过/usr/sbin/oracleasm querydisk /dev/sd*的方法来查找ASM磁盘对应OS级别的设备信息。