Experience: is what you get soon after you need it.

Experience: is what you get soon after you need it.

Rasul Allah (sal Allahu alaihi wa sallam) said: "Restore the trusts of those who trust you, and deal not falsely with him who deals falsely with you." [Abu Dawud, Tirmidhi]

Search This Blog

Thursday, September 15, 2011

ORA-15001 ORA-15039 ORA-15032 ORA-15063 ORA-15042 ORA-15040

We added a new diskgroup with new set of raw devices in RAC environment but it failed with ORA-600 errors and didn't completely mounted.

SQL> select name,state from v$asm_diskgroup;

NAME STATE
------------------------------ -----------
DBNAME_DATA_01 MOUNTED
DBNAME_FRA_01 MOUNTED
DBNAME_REDO_01 MOUNTED
DBNAME_REDO_02 MOUNTED
TEST_DG DISMOUNTED

SQL> drop diskgroup TEST_DG;
drop diskgroup TEST_DG
*
ERROR at line 1:
ORA-15039: diskgroup not dropped
ORA-15001: diskgroup "TEST_DG" does not exist or is not mounted


SQL> alter diskgroup TEST_DG mount;
alter diskgroup TEST_DG mount
*
ERROR at line 1:
ORA-15032: not all alterations performed
ORA-15040: diskgroup is incomplete
ORA-15042: ASM disk "19" is missing

Now we cannot do anything with the new diskgroup
So decided to zero out all the disks in the diskgroup since this is a new diskgroup and no data was ever saved in these disks I decided to clean out the headers.........Beware of this step if you zero out the headers on the disks which has data or already part of the existing diskgroups then you will loose everything on the disks and this operation cannot be undone. so be careful.


dd if=/dev/zero of=/dev/oracle/disk64g_t1_0042 bs=1024 count=1
1+0 records in
1+0 records out

dd if=/dev/zero of=/dev/oracle/disk64g_t1_0043 bs=1024 count=1
1+0 records in
1+0 records out

still cannot mount it.
SQL> alter diskgroup test_dg mount;
alter diskgroup test_dg mount
*
ERROR at line 1:
ORA-15032: not all alterations performed
ORA-15063: ASM discovered an insufficient number of disks for diskgroup
"TEST_DG"

cannot add any more new disks to it...
SQL> alter diskgroup test_dg add disk '/dev/oracle/disk64g_t1_0043';
alter diskgroup test_dg add disk '/dev/oracle/disk64g_t1_0043'
*
ERROR at line 1:
ORA-15032: not all alterations performed
ORA-15001: diskgroup "TEST_DG" does not exist or is not mounted



easiest way to drop the diskgroup is create a new one with the same name.

SQL> create diskgroup test_dg external redundancy disk '/dev/oracle/disk64g_t1_0043';

Diskgroup created.

now drop it..

SQL> drop diskgroup test_dg;

Diskgroup dropped.

SQL> select name,state from v$asm_diskgroup
2 ;

NAME STATE
------------------------------ -----------
DBNAME_DATA_01 MOUNTED
DBNAME_FRA_01 MOUNTED
DBNAME_REDO_01 MOUNTED
DBNAME_REDO_02 MOUNTED

Happy camper now its gone....now you can recreate it with the same name or do whatever u want with the new luns.

No comments: