Amazon books

Friday, February 14, 2014

ASM Best Practice - Add and drop ASM Disks in one command - Solving ORA-15032 and ORA-15054

If you are planing to change some discs in your disk group, the best planing is below:

1-Before definitively adding new disks to your ASM disk group in production, test these disks create a new disk group with them (It's good to check them with KFOD utility)

2-Create a tablespace on this new disk group

3-Create a table on this tablespace and do some DML. Take a look at all your alerts log files (ASM and RDBMS instances)

4-If everything is ok, go ahead. Drop table, tablespace and disk group that you created for test purpose.

5-Finnaly, add new disks and drop old ones with this procedure below:


5.1 Set power limit to 0:
SQL> alter system set asm_power_limit=0 scope=memory sid='*';

5.2 Add disks and drop old ones like below:

SQL> alter diskgroup DG_EBS_DATA add disk '/dev/rhdisk157','/dev/rhdisk158','/dev/rhdisk159','/dev/rhdisk160','/dev/rhdisk161' drop disk 'DG_EBS_DATA_0002','DG_EBS_DATA_0003','DG_EBS_DATA_0004','DG_EBS_DATA_0005','DG_EBS_DATA_0006';


PS: Pay attention to the dropping disks. They are the name os the disk in dictionary of ASM and NOT the path in OS. If you try to drop using the path you will get errors like below:

01:01:54 SQL> alter diskgroup DG_EBS_DATA add disk '/dev/rhdisk157','/dev/rhdisk158','/dev/rhdisk159','/dev/rhdisk160','/dev/rhdisk161' drop disk '/dev/rhdisk12','/dev/rhdisk13','/dev/rhdisk14','/dev/rhdisk15','/dev/rhdisk16' rebalance power 10;
alter diskgroup DG_EBS_DATA add disk '/dev/rhdisk157','/dev/rhdisk158','/dev/rhdisk159','/dev/rhdisk160','/dev/rhdisk161'       drop disk '/dev/rhdisk12','/dev/rhdisk13','/dev/rhdisk14','/dev/rhdisk15','/dev/rhdisk16' rebalance power 10
*
ERROR at line 1:
ORA-15032: not all alterations performed
ORA-15054: disk "/DEV/RHDISK16" does not exist in diskgroup "DG_EBS_DATA"
ORA-15054: disk "/DEV/RHDISK15" does not exist in diskgroup "DG_EBS_DATA"
ORA-15054: disk "/DEV/RHDISK14" does not exist in diskgroup "DG_EBS_DATA"
ORA-15054: disk "/DEV/RHDISK13" does not exist in diskgroup "DG_EBS_DATA"
ORA-15054: disk "/DEV/RHDISK12" does not exist in diskgroup "DG_EBS_DATA"


Elapsed: 00:00:00.74
01:01:58 SQL>



Best Regards,
Paulo Portugal

No comments:

Post a Comment