如何查询 ASM磁盘组由哪些物理磁盘组成 及文件大小空闲空间?
(2011-04-29 11:55:12)
标签:
杂谈 |
分类: RAC |
http://www.itpub.net/thread-1424589-2-1.html
终极命令 ##################
kfod -h命令帮助
kfod d=all命令
你说的那个物理路径是ASM磁盘
SQL> Select Name,path From v$asm_disk;
NAME
PATH
------------------------------ --------------------------------------------------------------------------------
V1
ORCL:V1
V2
ORCL:V2
我想这是我想要的:
[root@webdbb ~]# oracleasm querydisk V1
Disk "V1" is a valid ASM disk
[root@webdbb ~]# oracleasm querydisk /dev/sdf1
Device "/dev/sdf1" is marked an ASM disk with the label "V5"
[root@webdbb ~]# oracleasm querydisk /dev/sde1
Device "/dev/sde1" is marked an ASM disk with the label "V4"
不用那么复杂,操作系统的命令就搞定了:
#/etc/init.d/oracleasm querydisk VOLDB
Disk "VOLDB" is a valid ASM disk on device [8, 33]
#ll /dev/sd*1
brw-r----- 1 root disk 8, 1 Apr 12 16:38
/dev/sda1
brw-r----- 1 root disk 8, 17 Apr 12 16:39 /dev/sdb1
brw-r----- 1 root disk 8, 33 Apr 12 16:39 /dev/sdc1
brw-r----- 1 root disk 8, 49 Apr 12 16:39 /dev/sdd1
我的例子中8, 33是sdc1
[root@rthb1 ~]# /etc/init.d/oracleasm scandisks
Scanning the system for Oracle ASMLib disks: [
OK ]
[root@rthb1 ~]# /etc/init.d/oracleasm listdisks
VOL1
VOL2
VOL3
VOL4
[root@rthb1 ~]# /etc/init.d/oracleasm querydisk VOL1
Disk "VOL1" is a valid ASM disk
[root@rthb1 ~]# /etc/init.d/oracleasm querydisk -d VOL1
Disk "VOL1" is a valid ASM disk on device [8, 113]
[root@rthb1 ~]#
[root@rthb1 ~]#
[root@rthb1 ~]# ls -l /dev/s*1
brw-r----- 1 root disk
8, 1 03-25 13:04
/dev/sda1
brw-r----- 1 root disk 8, 17
03-25 13:04 /dev/sdb1
brw-r----- 1 root disk 8, 33
03-25 13:04 /dev/sdc1
brw-r----- 1 root disk 8, 49
03-25 13:04 /dev/sdd1
brw-r----- 1 root disk 8, 65
03-25 13:04 /dev/sde1
brw-r----- 1 root disk 8, 81
03-25 13:04 /dev/sdf1
brw-r----- 1 root disk 8, 97
04-29 11:46 /dev/sdg1
brw-r----- 1 root disk 8, 113 03-25 13:04
/dev/sdh1
brw-r----- 1 root disk 8, 129 03-25 13:04
/dev/sdi1
brw-r----- 1 root disk 8, 145 03-25 13:04
/dev/sdj1
brw-r----- 1 root disk 8, 161 03-25 13:04
/dev/sdk1
brw-r----- 1 root disk 8, 177 04-29 11:46
/dev/sdl1
crw------- 1 root root 21, 1
03-25 13:03 /dev/sg1
crw------- 1 root root 21, 11 03-25 13:03
/dev/sg11
数据文件V$DATAFILE不是有啊?
SQL> select BYTES,NAME from v$datafile;
BYTES
NAME
---------- --------------------------------------------------------------------------------
461373440 +TEST/testasm/system01.dbf
26214400
+TEST/testasm/undotbs01.dbf
314572800 +TEST/testasm/sysaux01.dbf
5242880
+TEST/testasm/users01.dbf
26214400
+TEST/testasm/undotbs02.dbf
查看剩余空间使用
SQL> select USABLE_FILE_MB,TOTAL_MB,FREE_MB from v$asm_diskgroup;
USABLE_FILE_MB
TOTAL_MB
FREE_MB
-------------- ---------- ----------
3223
4682
3223
USABLE_FILE_MB 是实际的剩余空间
TOTAL_MB
磁盘总的大小如果你有3个盘160M一个
那就是3*160M 不管冗余度
FREE_MB
剩余的空间,不管冗余度,在外部冗余情况下FREE_MB =USABLE_FILE_MB
普通冗余USABLE_FILE_MB=FREE_MB/2
高冗余 USABLE_FILE_MB=FREE_MB/3
我们知道用下面的方法可创建 ASM 磁盘,然后再创建逻辑的ASM组
以 root 用户身份创建 ASM 磁盘。
# /etc/init.d/oracleasm createdisk VOL1 /dev/sdc1
Marking disk "/dev/sdc1" as an ASM disk:
[ OK ]
# /etc/init.d/oracleasm createdisk VOL2 /dev/sdd1
Marking disk "/dev/sdd1" as an ASM disk:
[ OK ]
# /etc/init.d/oracleasm createdisk VOL3 /dev/sde1
Marking disk "/dev/sde1" as an ASM disk:
[ OK ]
Verify that the ASM disks are visible from every node.
# /etc/init.d/oracleasm scandisks
Scanning system for ASM disks:
[ OK ]
# /etc/init.d/oracleasm listdisks
VOL1
VOL2
VOL3
但是我问题是,如果通过ASM磁盘或是磁盘组找到ASM磁盘对应的物理磁盘呢?
也就是上面方法的反向查询,因为有些时候ASM磁盘是由以前管理员创建,新的管理员要对以前系统存储进行查询了解。
比如:现在知道ASM磁盘组+DATA由VOL1、VOL2组成,现在我想知道VOL1和VOL2分别是哪些物理磁盘(VOL1对应/dev/sdc1,VOL2对应VOL2 /dev/sdd1)组成的?
############## 以 root 用户身份创建 ASM 磁盘。
# /etc/init.d/oracleasm createdisk VOL1 /dev/sdc1
Marking disk "/dev/sdc1" as an ASM disk:
# /etc/init.d/oracleasm createdisk VOL2 /dev/sdd1
Marking disk "/dev/sdd1" as an ASM disk:
# /etc/init.d/oracleasm createdisk VOL3 /dev/sde1
Marking disk "/dev/sde1" as an ASM disk:
Verify that the ASM disks are visible from every node.
# /etc/init.d/oracleasm scandisks
Scanning system for ASM disks:
# /etc/init.d/oracleasm listdisks
VOL1
VOL2
VOL3
但是我问题是,如果通过ASM磁盘或是磁盘组找到ASM磁盘对应的物理磁盘呢?
也就是上面方法的反向查询,因为有些时候ASM磁盘是由以前管理员创建,新的管理员要对以前系统存储进行查询了解。
比如:现在知道ASM磁盘组+DATA由VOL1、VOL2组成,现在我想知道VOL1和VOL2分别是哪些物理磁盘(VOL1对应/dev/sdc1,VOL2对应VOL2 /dev/sdd1)组成的?
kfod -h命令帮助
kfod d=all命令
你说的那个物理路径是ASM磁盘
SQL> Select Name,path From v$asm_disk;
NAME
------------------------------ --------------------------------------------------------------------------------
V1
V2
我想这是我想要的:
[root@webdbb ~]# oracleasm querydisk V1
Disk "V1" is a valid ASM disk
[root@webdbb ~]# oracleasm querydisk /dev/sdf1
Device "/dev/sdf1" is marked an ASM disk with the label "V5"
[root@webdbb ~]# oracleasm querydisk /dev/sde1
Device "/dev/sde1" is marked an ASM disk with the label "V4"
不用那么复杂,操作系统的命令就搞定了:
#/etc/init.d/oracleasm querydisk VOLDB
Disk "VOLDB" is a valid ASM disk on device [8, 33]
#ll /dev/sd*1
brw-r----- 1 root disk 8,
brw-r----- 1 root disk 8, 17 Apr 12 16:39 /dev/sdb1
brw-r----- 1 root disk 8, 33 Apr 12 16:39 /dev/sdc1
brw-r----- 1 root disk 8, 49 Apr 12 16:39 /dev/sdd1
我的例子中8, 33是sdc1
[root@rthb1 ~]# /etc/init.d/oracleasm scandisks
Scanning the system for Oracle ASMLib disks: [
[root@rthb1 ~]# /etc/init.d/oracleasm listdisks
VOL1
VOL2
VOL3
VOL4
[root@rthb1 ~]# /etc/init.d/oracleasm querydisk VOL1
Disk "VOL1" is a valid ASM disk
[root@rthb1 ~]# /etc/init.d/oracleasm querydisk -d VOL1
Disk "VOL1" is a valid ASM disk on device [8, 113]
[root@rthb1 ~]#
[root@rthb1 ~]#
[root@rthb1 ~]# ls -l /dev/s*1
brw-r----- 1 root disk
brw-r----- 1 root disk
brw-r----- 1 root disk
brw-r----- 1 root disk
brw-r----- 1 root disk
brw-r----- 1 root disk
brw-r----- 1 root disk
brw-r----- 1 root disk
brw-r----- 1 root disk
brw-r----- 1 root disk
brw-r----- 1 root disk
brw-r----- 1 root disk
crw------- 1 root root 21,
crw------- 1 root root 21,
数据文件V$DATAFILE不是有啊?
SQL> select BYTES,NAME from v$datafile;
---------- --------------------------------------------------------------------------------
461373440 +TEST/testasm/system01.dbf
314572800 +TEST/testasm/sysaux01.dbf
查看剩余空间使用
SQL> select USABLE_FILE_MB,TOTAL_MB,FREE_MB from v$asm_diskgroup;
USABLE_FILE_MB
-------------- ---------- ----------
USABLE_FILE_MB 是实际的剩余空间
TOTAL_MB
FREE_MB
高冗余 USABLE_FILE_MB=FREE_MB/3