I.PREREQUISITES
Before starting operation, verifiy that :
– Disks provided are visible at OS level on both nodes
– Have root access to execute some commands
– oracleasm is installed and configured on both nodes
– Cluster database running properly
1.VERIFYING EXISTING DISKS
Verify disks provided are visible on both nodes. Here, we’ll add 6 disks to ASM :
/dev/mapper/asm-data-41
/dev/mapper/asm-data-42
/dev/mapper/asm-data-43
/dev/mapper/asm-data-44
/dev/mapper/asm-data-45
/dev/mapper/asm-data-46
Check ASM storage status before operation with asmcmd command. We’ll increase diskgroup +DATA size
$ . oraenv
ORACLE_SID = [KYCR1] ? +ASM1
The Oracle base has been changed from /opt/app/oracle to /opt/app/grid
$

2. CHECKING EXISTING DISKS
Check disks status with below command.
Vérifier l’état des disques dans l’ASM avec la commande ci-dessous. NB : The where clause : where header_status=’FORMER’ allows o check if there are ‘FORMER’ disks which are disks already dropped from ASM but still exist with labels. We can choose to remove them as below:
$sqlplus / as sysasm
SQL>select disk_number,header_status,mount_status,path,mode_status,state from v$asm_disk where header_status=’FORMER’ order by path;
5 CLOSED FORMER ONLINE NORMAL /dev/oracleasm/disks/DATA41
14 CLOSED FORMER ONLINE NORMAL /dev/oracleasm/disks/DATA42
9 CLOSED FORMER ONLINE NORMAL /dev/oracleasm/disks/DATA43
1 CLOSED FORMER ONLINE NORMAL /dev/oracleasm/disks/DATA44
7 CLOSED FORMER ONLINE NORMAL /dev/oracleasm/disks/DATA45
0 CLOSED FORMER ONLINE NORMAL /dev/oracleasm/disks/DATA46
13 CLOSED FORMER ONLINE NORMAL /dev/oracleasm/disks/DATA47
6 CLOSED FORMER ONLINE NORMAL /dev/oracleasm/disks/DATA48
4 CLOSED FORMER ONLINE NORMAL /dev/oracleasm/disks/DATA49
3 CLOSED FORMER ONLINE NORMAL /dev/oracleasm/disks/DATA50
11 CLOSED FORMER ONLINE NORMAL /dev/oracleasm/disks/DATA51
Removing ‘FORMER’ with oracleasm:
# oracleasm deletedisk DATA41
Clearing disk header: done
Dropping disk: done
# oracleasm deletedisk DATA43
Clearing disk header: done
Dropping disk: done
…
# oracleasm deletedisk DATA51
Clearing disk header: done
Dropping disk: done
NB: The deletedisk command can fail sometimes. You can use dd commande with appropriate options to clean the disk like below:
#dd if=/dev/zero of=/dev/mapper/asm-data-41 bs=1024 count=100
On the second node, execute scandisks as root user to update this node about actions performed on node 1:
# oracleasm scandisks
Reloading disk partitions: done
Cleaning any stale ASM disks…
Cleaning disk “DATA41”
Cleaning disk “DATA42”
Cleaning disk “DATA43”
Cleaning disk “DATA44”
Cleaning disk “DATA45”
Cleaning disk “DATA46”
Cleaning disk “DATA47”
Cleaning disk “DATA48”
Cleaning disk “DATA49”
Cleaning disk “DATA50”
Cleaning disk “DATA51”
Scanning system for ASM disks…
#
II. ADDING DISKS
1. FORMAT DISKS
From node 1, format the 6 disks to add with oracleasm:
# oracleasm createdisk DATA42 /dev/mapper/asm-data-42
Writing disk header: done
Instantiating disk: done
# oracleasm createdisk DATA43 /dev/mapper/asm-data-43
Writing disk header: done
Instantiating disk: done
# oracleasm createdisk DATA44 /dev/mapper/asm-data-44
Writing disk header: done
Instantiating disk: done
# oracleasm createdisk DATA45 /dev/mapper/asm-data-45
Writing disk header: done
Instantiating disk: done
# oracleasm createdisk DATA46 /dev/mapper/asm-data-46
Writing disk header: done
Instantiating disk: done
#
Check disks added with labels with below command:
# oracleasm listdisks
On the second node, execute scandisks to discover disks added on node 1:
# oracleasm scandisks
Reloading disk partitions: done
Cleaning any stale ASM disks…
Scanning system for ASM disks…
Instantiating disk “DATA41”
Instantiating disk “DATA42”
Instantiating disk “DATA43”
Instantiating disk “DATA45”
Instantiating disk “DATA44”
Instantiating disk “DATA46”
2. ADD DISKS
Use alter diskgroup command to add disks to diskgroup +DATA. The option REBALANCE POWER 11 makes execution faster:
SQL> ALTER DISKGROUP DATA ADD DISK ‘/dev/oracleasm/disks/DATA42’ SIZE 409605M REBALANCE POWER 11;
Diskgroup altered.
SQL> ALTER DISKGROUP DATA ADD DISK ‘/dev/oracleasm/disks/DATA42’ SIZE 409605M REBALANCE POWER 11;
Diskgroup altered.
SQL> SQL> ALTER DISKGROUP DATA ADD DISK ‘/dev/oracleasm/disks/DATA43’ SIZE 409605M REBALANCE POWER 11;
Diskgroup altered.
SQL> ALTER DISKGROUP DATA ADD DISK ‘/dev/oracleasm/disks/DATA44’ SIZE 409605M REBALANCE POWER 11;
Diskgroup altered.
SQL> ALTER DISKGROUP DATA ADD DISK ‘/dev/oracleasm/disks/DATA45’ SIZE 409605M REBALANCE POWER 11;
Diskgroup altered.
SQL> SQL> ALTER DISKGROUP DATA ADD DISK ‘/dev/oracleasm/disks/DATA46’ SIZE 409605M REBALANCE POWER 11;
Diskgroup altered.
You can follow reballance operation execution with below command:
SQL> select operation, state, power,sofar,est_rate, est_minutes, round((sofar/EST_WORK)*100,2) pct_complete from v$asm_operation where STATE=’RUN’;
OPERA STAT POWER SOFAR EST_RATE EST_MINUTES PCT_COMPLETE
—– —- ———- ———- ———- ———– ———-
REBAL RUN 11 5656 27564 0 100
Check extension of the diskgroup with asmcmd command:
