This article describe how we can drop and recreate ASM diskgroup when its not possible to perform this through SQL command.
When a member disk in external redundancy diskgroup is no longer present (or destroyed beyond repair) and you want to drop the diskgroup completely and recreate it or add the disks of the diskgroup to other diskgroups. The diskgroup can not be mounted, because one of the disks is missing, hence the "drop diskgroup" command will not work.
In 10g you can use a workaround by erasing the header of the disk using the dd command.
In 11g, the diskgroup can be dropped when its dismounted with FORCE option:
Oracle� Database Storage Administrator's Guide - 11g Release 1 (11.1)
Administering ASM Disk Groups
Dropping Disk Groups
http://download.oracle.com/docs/cd/B28359_01/server.111/b31107/asmdiskgrps.htm#i1020539
Erasing the header using "dd" command is very dangerous operation and need to be done under support supervision and when it confirmed by support that fixing the header is impossible.
In all cases and before the erasing operation you should gather the following information:
1. alert.log file from all ASM instances going back to last successful mount for diskgroup.
2. OS logs.
3. Backup disk header for all member disks in diskgroup:
ddif=/dev/raw/raw13of=/tmp/raw13.txt bs=1048576 count=100
1. Erase ASM metadata information for disk using OS command:
!!! YOU HAVE TO BE CAREFUL WHEN TYPING DISK NAME !!!
For Unix platforms using 'dd' Unix command.
==================================
Example:
ddif=/dev/zeroof=/dev/raw/raw13bs=1048576 count=50
Theddutilitycopiesthespecifiedinputfiletothespecifiedoutput.
Description for used options:
'if=file'
Readfromfile/device.
'of=file'
Writetofile/device.
'bs=bytes'
Setbothinputandoutputblocksizestobytes.
'count=blocks'
Copyblocks'ibs'-byteblocksfromtheinputfile
This puts zeroes to the first 50 MB of disk /dev/raw/raw13, erasing all information.
For MS Windows platforms using 'asmtool' (command line) or 'asmtoolg' (GUI)
============================================================
Example:
C:\>asmtool-delete\\.\ORCLDISKASM7
2. Connect to ASM instance to check the current disk status:
SQL>selectheader_status,pathfromv$asm_disk;
You should see the header_status for the cleared disks as " CANDIDATE " which means that disk's metadata erased and it can be used again.
selectGROUP_NUMBER,NAME,HEADER_STATUS,TOTAL_MB,FREE_MBfromV$ASM_DISK;
GROUP_NUMBERNAMEHEADER_STATUTOTAL_MBFREE_MB
--------------------------------------------------------------------------
0CANDIDATE 100000
1DATA_0000MEMBER 10000 9933
1DATA_0003MEMBER 10000 9933
If you dropped all diskgroup member disks, you should not see the diskgroup any more because all its member disks were cleared.
SQL>selectname,STATEfromv$asm_diskgroup;
3. Now, you can use the erased disk(s) to create a new disk group or add the disk to existing diskgroup.
From Oracle
-------------------------------------------------------------------------------------------------------
Blog: http://blog.csdn.net/tianlesoftware
Email: [email protected]
DBA1 群:62697716(满); DBA2 群:62697977(满) DBA3 群:62697850(满)
DBA 超级群:63306533(满); DBA4 群: 83829929 DBA5群: 142216823
聊天 群:40132017 聊天2群:69087192
--加群需要在备注说明Oracle表空间和数据文件的关系,否则拒绝申请