需求:
Oracle RAC 下的磁盘,冗余方式为外部冗余。因为共享磁盘空间不够,需要扩空间
在虚拟机下测试:
在虚拟机上测试,在虚拟机中,对共享磁盘进行resize后,ASM对应的磁盘组,是否会自动扩大空间。
测试结果
当ASM磁盘的冗余模式为外部模式时,这种方法没有办法扩大ASM磁盘组的大小。
当ASM磁盘组为normal方式的时候,没有测试。
存在的问题
1 比如共享磁盘为/dev/sdb1 ,将该共享磁盘扩大以后,在Linux上看,还是原来的大小,可以通过fdisk命令来处理
2 使用fdisk命令,删除原来的分区,重新创建分区,这样/dev/sdb1的大小,才是扩展后的大小
3 在ASMCA上看,磁盘组的大小,还是原来的大小。但是如果create新建磁盘组,会看到/dev/sdb1已经扩大了(其实没有什么用,/dev/sdb1已经使用了,无法在ASM磁盘组层面扩大)
4 所以,建议还是add一块新的磁盘。通过add disk添加到已有的磁盘组中 。
-- 查看原来的磁盘信息,磁盘组大小40G ,冗余方式为外部
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 EXTERN N 512 512 4096 4194304 40956 34600 0 34600 0 N DATA/
ASMCMD>
-- 停机后,在虚拟机上将asm磁盘文件/dev/sdb1由40G扩大到46G。扩展后,操作系统上还是42.9G ,但是sdb1 是49.4G
[root@asm12c ~]# fdisk -l /dev/sdb1
Disk /dev/sdb1: 42.9 GB, 42948624384 bytes, 83884032 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
[root@asm12c ~]#
[root@asm12c ~]# fdisk -l /dev/sdb
Disk /dev/sdb: 49.4 GB, 49392123904 bytes, 96468992 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x4092752a
Device Boot Start End Blocks Id System
/dev/sdb1 2048 83886079 41942016 83 Linux
[root@asm12c ~]#
-- 删除分区后,再次创建分区
fdisk -l /dev/sdb -- 按p打印分区,d删除分区,n重新创建分区
[root@asm12c ~]# fdisk -l /dev/sdb
Disk /dev/sdb: 49.4 GB, 49392123904 bytes, 96468992 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x4092752a
Device Boot Start End Blocks Id System
/dev/sdb1 2048 96468991 48233472 83 Linux
[root@asm12c ~]#
[root@asm12c ~]# fdisk -l /dev/sdb1
Disk /dev/sdb1: 49.4 GB, 49391075328 bytes, 96466944 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
[root@asm12c ~]#
-- 这个时候,通过asmca,在上面看到,磁盘组的大小还是40G ,但是,如果create disk的话,会看到/dev/sdb1是46G 。当然,lsdg上看,还是40G的大小。
-- 在ASM上命令扩,失败,因为是外部冗余
SQL> ALTER DISKGROUP DATA RESIZE DISKS IN FAILGROUP DATA_0000 SIZE 45G;
ALTER DISKGROUP DATA RESIZE DISKS IN FAILGROUP DATA_0000 SIZE 45G
*
ERROR at line 1:
ORA-15067: command or option incompatible with diskgroup redundancy
SQL>
所以,建议还是新建共享磁盘,配置后,add disk到原有的ASM磁盘组中。
END