解决Oracle ORA-01122, ORA-01251 或数据块报告损坏

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

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

服务热线 : 13764045638 QQ号:47079569 邮箱:[email protected]

 

 

适用于:

 

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的设备也必须在一个关闭的状态。


Posted

in

by

Tags:

Comments

Leave a Reply

Your email address will not be published. Required fields are marked *