数据库实例日志: 

Tue Mar 01 12:18:12 2016

SUCCESS: diskgroup ORADISKGRP1 was dismounted

SUCCESS: diskgroup ORADISKGRP1 was dismounted

Errors in file C:\APP\ORACLE\PRODUCT\11.2.0\diag\rdbms\bflex\bflex1\trace\bflex1_ckpt_6376.trc:

ORA-00206: error in writing (block 3, # blocks 1) of control file

ORA-00202: control file: '+ORADISKGRP1/bflex/controlfile/current.287.925642037'

ORA-15078: ASM diskgroup was forcibly dismounted

ORA-15078: ASM diskgroup was forcibly dismounted


再看asm日志

Tue Mar 01 12:18:12 2016

ASM Health Checker found 1 new failures

Dirty Detach Reconfiguration complete

Tue Nov 01 12:18:12 2016

WARNING: dirty detached from domain 1

NOTE: cache dismounted group 1/0x5DD073B7 (ORADISKGRP1)

SQL> alter diskgroup ORADISKGRP1 dismount force /* ASM SERVER:1573942199 */

Tue Nov 01 12:18:12 2016

NOTE: cache deleting context for group ORADISKGRP1 1/0x5dd073b7

GMON dismounting group 1 at 6 for pid 30, osid 7684

NOTE: Disk ORADISKGRP1_0000 in mode 0x7f marked for de-assignment

NOTE: Disk ORADISKGRP1_0001 in mode 0x7f marked for de-assignment

NOTE: Disk ORADISKGRP1_0002 in mode 0x7f marked for de-assignment

SUCCESS: diskgroup ORADISKGRP1 was dismounted

SUCCESS: alter diskgroup ORADISKGRP1 dismount force /* ASM SERVER:1573942199 */

SUCCESS: ASM-initiated MANDATORY DISMOUNT of group ORADISKGRP1



这里的asm日志很明显由于asm disk无法正常访问,报ORA-27072错误,磁盘组被强制dismount. 一般出现这样故障的原因大多都是人为误操作造成的,比如挂到A机的裸盘被挂至B机,然后被误格式化。


处理办法:

先用kfed恢复磁盘头

C:\Users\Administrator> kfed repair '\\.\J:'
C:\Users\Administrator>kfed read '\\.\J:'
kfbh.endian:                          1 ; 0x000: 0x01
kfbh.hard:                          130 ; 0x001: 0x82
kfbh. type :                            1 ; 0x002: KFBTYP_DISKHEAD
kfbh.datfmt:                          1 ; 0x003: 0x01
kfbh.block.blk:                     254 ; 0x004: T=0 NUMB=0xfe
kfbh.block.obj:              2147483654 ; 0x008: TYPE=0x8 NUMB=0x6
kfbh.check:                   717599272 ; 0x00c: 0x2ac5b228
kfbh.fcn.base:                        0 ; 0x010: 0x00000000
kfbh.fcn.wrap:                        0 ; 0x014: 0x00000000
kfbh.spare1:                          0 ; 0x018: 0x00000000
kfbh.spare2:                          0 ; 0x01c: 0x00000000
kfdhdb.driver.provstr:    ORCLDISKDATA6 ; 0x000: length=13
kfdhdb.driver.reserved[0]:   1096040772 ; 0x008: 0x41544144
kfdhdb.driver.reserved[1]:           54 ; 0x00c: 0x00000036
kfdhdb.driver.reserved[2]:            0 ; 0x010: 0x00000000
kfdhdb.driver.reserved[3]:            0 ; 0x014: 0x00000000
kfdhdb.driver.reserved[4]:            0 ; 0x018: 0x00000000
kfdhdb.driver.reserved[5]:            0 ; 0x01c: 0x00000000


使用asmtool  -list查看相关磁盘信息

oracle asm disk被格式化为ntfs文件系统_第1张图片


然后用dbv检测是否有坏块,没有就好办了。幸好asm有备份,用备份恢复即可。


SQL> recover database ;
完成介质恢复。
SQL> alter database open ;
 
数据库已更改。