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

    你在这里

    • You are here:
    • 首页 > 博客 > PDSERVICE的博客 > 解决Oracle ORA-01122, ORA-01251 或数据块报告损坏 ORA-01251: 读取了文件号 的未知文件标头版本 ORA-01122: 数据库文件 验证失败

解决Oracle ORA-01122, ORA-01251 或数据块报告损坏 ORA-01251: 读取了文件号 的未知文件标头版本 ORA-01122: 数据库文件 验证失败

解决Oracle ORA-01122, ORA-01251 或数据块报告损坏 ORA-01251: 读取了文件号 的未知文件标头版本 ORA-01122: 数据库文件 验证失败

如果自己搞不定可以找诗檀软件专业ORACLE数据库修复团队成员帮您恢复!

诗檀软件专业数据库修复团队

服务热线 : 13764045638 QQ号:47079569 邮箱:service@parnassusdata.com

 

ORA-01122: 数据库文件  验证失败

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

 

适用于:

Oracle数据库 – 企业版 – 9.2.0.1 到10.2.0.1版本 平台:

IBM AIX on POWER Systems (64-bit)

IBM AIX Based Systems (64-bit)

AIX5L Based Systems (64-bit)

This problem affects all RDBMS releases on AIX5L Based Systems using data files on raw devices over the following OS maintenance levels.

bos.rte.lvm 5.2.0.97 (5200-09-03) and later

bos.rte.lvm 5.3.0.53 (5300-05-04) and later

 

症状

在读取一些数据文件的头部或读取控制文件时有时会报些错误,比如在启动数据库的过程中报下面这些错误:

在数据文件中:

ORA-01122:26号数据文件验证检查失败

ORA-01110:数据文件26:‘/dev/rccrac_data09′

ORA-01251: 编号26的文件读取的文件头版本未知

在控制文件中:

dump出来第0号文件的第1个块,dump出来的文件/oracle/app/oracle/admin/cc/udump/cc_ora_811272.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

consistency value in tail: 0x00000000

check value in block header: 0x0, block checksum disabled

spare1: 0x0, spare2: 0x0, spare3: 0x0

 

 

dev对违规的数据文件也报告所有的坏块。比如:

 

DBVERIFY – Verification starting : FILE = /dev/rccrac_deutb

Page 1 is influx – most likely media corrupt

Corrupt block relative dba: 0x00000001 (file 0, block 1)

Fractured block found during dbv:

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: 0x00000000

check value in block header: 0x0

 

变化

可以在系统重新启动后或在逻辑卷上更改后看到问题。

 

原因

问题是由于逻辑卷丢失了DS_LVZ属性。这会导致Oracle开始读取错误的偏移量的数据文件(4k).例如,考虑一个新的逻辑卷:

mklv -y’asm_tst_data’ -t’jfs2′ -a’e’ -T O -w n -r n -S 64k asmtst 200 hdisk2 hdisk3 hdisk4

-T O标志的使用,表示对LM的DS_LVZ属性进行了设置。

命令:lslv -L asm_tst_data

应该有像“devicesubtype:ds_lvz”的设置。任何导致在卷组的变化的操作(例如,重新启动或varyoffvg)将消除逻辑卷的ds_lvz标识。这时,lslv -L将不再显示“devicesubtype:ds_lvz”。因此,Oracle会在不正确的偏移读数据文件和报告错误。

 

解决方案:

实现解决方案,请执行如下步骤: Problem is caused by defect IY94343 in AIX Operating System.

Solution is to apply fix: (see http://www-1.ibm.com/support/docview.wss?uid=isg1IY94343 )

Comments from link:

5200-10 – use AIX APAR IY94347

5300-06 – use AIX APAR IY94343

5300-07 – use AIX APAR IY94343

注意: 影响 local volumes (LVs) 可以用这个固定命令:

# chlv -T O <lv name>

这个命令重设devicesubtype:ds_lvz影响LVs。请不要在标准4KB LVs执行这个命令。LVs的设备也必须在一个关闭的状态。