咨询微信: dbservice1234 7 x 24 在线支持!

解决 ORA-01251: 读取了文件号 1 的未知文件标头版本

解决 ORA-01251: 读取了文件号 1 的未知文件标头版本

数据库由于系统表空间的文件损坏,无法正常打开

数据库近期发生异常,不能识别system表空间里面的数据文件。因系统表数据文件损坏,数据库无法打开。
通过oracle恢复软件PRM-DUL恢复了绝大部分表的数据,但因为数据字典信息丢失,恢复的表系统自动命名,需要应用相关人员对这些表和应用表进行匹配。

ORA-01251: 读取了文件号 1 的未知文件标头版本

 

数据库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 读取过程中报如下错误,只读取部分数据,丢失数据需要通过应用手段进行恢复。