数据库由于系统表空间的文件损坏,无法正常打开
数据库近期发生异常,不能识别system表空间里面的数据文件。因系统表数据文件损坏,数据库无法打开。
通过oracle恢复软件PRM-DUL恢复了绝大部分表的数据,但因为数据字典信息丢失,恢复的表系统自动命名,需要应用相关人员对这些表和应用表进行匹配。
数据库open时报报如下错误:
ORACLE instance started. Total System Global Area 1610612736 bytes Fixed Size 2237560 bytes Variable Size 865852296 bytes Database Buffers 738197504 bytes Redo Buffers 4325376 bytes Database mounted. ORA-01122: database file 1 failed verification check ORA-01110: data file 1: '/dev/vx/rdsk/orcl/system' ORA-01251: Unknown File Header Version read for file number 1
ORA-01251:
Unknown File Header Version read for file number string
Cause: Read of the file header returned a record but its version cannot be identified. Either the header has been corrupted, or the file is not a valid database file.
Action: Have the operating system make the correct file available to the database, or recover the file.
故障处理:
经分析,发现系统表空间已经丢失,当前系统表空间的datafile为空的datafile,dbv命令显示所有的块都无法访问。
系统表空间没有备份,只能通过oracle恢复软件PRM-DUL 直接读取datafile,每张表导出为一个sqlldr文件,再导入新建的数据库。
为了加快恢复速度,按表空间读取数据库文件中的数据,多个表空间可以并行读取,表空间列表如下:
表空间TS01 读取过程中报如下错误,只读取部分数据,丢失数据需要通过应用手段进行恢复。
Comment