While creating a new Oracle database with ASM on an AWS EC2 platform I encountered the below errors while attempting to mount one of the ASM disk groups:
ALTER DISKGROUP VOTE_DISK mount * ERROR at line 1: ORA-15032: not all alterations performed ORA-15017: diskgroup "VOTE_DISK" cannot be mounted ORA-15040: diskgroup is incomplete
When I checked the v$asm_diskgroup, I saw
SQL> select NAME,TOTAL_MB,FREE_MB from v$asm_diskgroup; NAME TOTAL_MB FREE_MB ------------------------------ ---------- ---------- ASMDATA1 716796 716726 DBVOT 0 0 ASMDATA2 716796 716726 ASMARCH 716796 716726
The goal was to create the VOTE_DISK diskgroup on the DBVOT volume that was in turn mapped to the /dev/bqdx disk. The AWS Console indicated that the /dev/bqdx was attached to the EC2 but was not visible in the OS for some reason. I issued the command:
/usr/bin/echo -e "o\nn\np\n1\n\n\nt\n8e\nw" | /usr/sbin/fdisk /dev/bqdx
Which resulted in:
Welcome to fdisk (util-linux 2.23.2). Changes will remain in memory only, until you decide to write them. Be careful before using the write command. Command (m for help): Building a new DOS disklabel with disk identifier 0x29ba6b8d. Command (m for help): Partition type: p primary (0 primary, 0 extended, 4 free) e extended Select (default p): Partition number (1-4, default 1): First sector (2048-104857599, default 2048): Using default value 2048 Last sector, +sectors or +size{K,M,G} (2048-104857599, default 104857599): Using default value 104857599 Partition 1 of type Linux and of size 50 GiB is set Command (m for help): Selected partition 1 Hex code (type L to list all codes): Changed type of partition 'Linux' to 'Linux LVM' Command (m for help): The partition table has been altered! Calling ioctl() to re-read partition table. Syncing disks.
However, when I attempted to create the disk I got the error:
root@10-118-134-71:/root # /usr/sbin/oracleasm createdisk DBVOT /dev/bqdx1 Device "/dev/bqdx1" is already labeled for ASM disk "DBVOT"
I then attempted to drop the disk group
SQL> drop diskgroup DBVOT; drop diskgroup DBVOT * ERROR at line 1: ORA-15039: diskgroup not dropped ORA-15001: diskgroup "DBVOT" does not exist or is not mounted
I then tried with the FORCE option and succeeded
SQL> drop diskgroup DBVOT force including contents; Diskgroup dropped.
I then deleted the disk
root@10-118-134-71:/root # /usr/sbin/oracleasm deletedisk DBVOT Clearing disk header: done Dropping disk: done
and checked to make sure it was no longer visible
[oracle@10-118-134-71 ~]$ /usr/sbin/oracleasm listdisks DB1 DG10 DG11 DG12 DG2 DG3 DG4 DG5 DG6 DG7 DG8 DG9
Then I recreated the disk
root@10-118-134-71:/root # /usr/sbin/oracleasm createdisk DBVOT /dev/bqdx1 Writing disk header: done Instantiating disk: done
and listed the disks to confirm
root@10-118-134-71:/root # /usr/sbin/oracleasm listdisks DG1 DG10 DG11 DG12 DG2 DG3 DG4 DG5 DG6 DG7 DG8 DG9 DBVOT
Then I created the disk in ASM
SQL> CREATE DISKGROUP DBVOT EXTERNAL REDUNDANCY DISK '/dev/oracleasm/disks/DBVOT'; Diskgroup created.