Email: service@parnassusdata.com 7 x 24 online support!

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

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

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

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

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

适用于:

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