最近,帮助用户处理了一则数据库故障,稍微记录一下。
由于断电,导致数据库无法启动,经过检查发现控制文件的大小变为0,彻底丢失,数据文件也有丢失。
在告警日志文件中,记录了以下一些错误:
1.SYSAUX表空间的错误信息
系统的SYSAUX表空间丢失,涉及到该表空间的所有操作都会出现这个错误:
Sat Mar 19 14:00:03 2011
Errors in file c:\\oracle\\product\\10.1.0\\admin\\yikatong\\bdump\\yikatong_j000_7220.trc:
ORA-12012: error on auto execute of job 8739
ORA-00376: file ORA-00376: file 3 cannot be read at this time
ORA-01110: data file 3: 'Z:\\ORADATA\\YIKATONG\\SYSAUX01.DBF'
ORA-06512: at "SYS.DBMS_STATS_INTERNAL", line 969
ORA-06512: at "SYS.DBMS_STATS", line 15686
cannot be read at this time由此也可以看出SYSAUX表空间的好处,就是丢失了也至于从根本上影响整个数据库的运行。
2.控制文件的错误信息
日志记录控制文件的头块损坏,实际上控制文件整个丢失了:
Hex dump of (file 0, block 1) in trace file c:\\oracle\\product\\10.1.0\\admin\\yikatong\\bdump\\yikatong_arc1_6748.trc
Corrupt block relative dba: 0x00000001 (file 0, block 1)
Fractured block found during control file header read
Data in bad block:
type: 0 format: 0 rdba: 0x00000000
last change scn: 0x0000.00000000 seq: 0x0 flg: 0x00
spare1: 0x0 spare2: 0x0 spare3: 0x0
consistency value in tail: 0x85db1501
check value in block header: 0x0
block checksum disabled
Tue Mar 22 22:14:41 2011
Errors in file c:\\oracle\\product\\10.1.0\\admin\\yikatong\\bdump\\yikatong_arc1_6748.trc:
ORA-00202: 控制文件: 'Z:\\ORADATA\\YIKATONG\\CONTROL01.CTL'
Tue Mar 22 22:14:42 2011
Errors in file c:\\oracle\\product\\10.1.0\\admin\\yikatong\\bdump\\yikatong_arc1_6748.trc:
ORA-00227: 控制文件中检测到损坏的块: (块 1, # 块 1)
ORA-00202: 控制文件: 'Z:\\ORADATA\\YIKATONG\\CONTROL01.CTL'3.数据文件丢失
用户失误曾经在C盘创建数据文件:
ORA-01157: ????/?????? 7 - ??? DBWR ????
ORA-01110: ???? 7: 'C:\\WINDOWS\\SYSTEM32\\DAS1.DB'
ORA-27041: ??????
OSD-04002: 无法打开文件
O/S-Error: (OS 2) 系统找不到指定的文件。不清楚为何一次简单的断电导致了如此严重的后果,庆幸的是,客户有一份及时的备份,通过备份和归档日志,成功的恢复了数据库。
有备份,一切很简单。