数据库实例日志:
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查看相关磁盘信息
然后用dbv检测是否有坏块,没有就好办了。幸好asm有备份,用备份恢复即可。
SQL> recover
database
;
完成介质恢复。
SQL>
alter
database
open
;
数据库已更改。