【案例】Oracle数据库verify验证块报错4 dbv报错代码:6101解决办法
时间:2016-10-25 10:40 来源:Oracle研究中心 作者:HTZ 点击:
次
天萃荷净
Oracle研究中心案例分析:运维DBA反映在处理Oracle数据库坏块时使用verify验证块报错4,dbv报错代码:6101解决办法。
bbed修改块的相关的内容
其实bbed只需要改2个地址,一个地方是改itl中的flg,更改为提交,另一个地方是清除行中的itl的值
BBED> p ktbbh
struct ktbbh, 96 bytes @20
ub1 ktbbhtyp @20 0x01 (KDDBTDATA)
union ktbbhsid, 4 bytes @24
ub4 ktbbhsg1 @24 0x00012906
ub4 ktbbhod1 @24 0x00012906
struct ktbbhcsc, 8 bytes @28
ub4 kscnbas @28 0x0024e77c
ub2 kscnwrp @32 0x0000
sb2 ktbbhict @36 3
ub1 ktbbhflg @38 0x32 (NONE)
ub1 ktbbhfsl @39 0x00
ub4 ktbbhfnx @40 0x01001930
struct ktbbhitl[0], 24 bytes @44
struct ktbitxid, 8 bytes @44
ub2 kxidusn @44 0xffff
ub2 kxidslt @46 0x0000
ub4 kxidsqn @48 0x00000000
struct ktbituba, 8 bytes @52
ub4 kubadba @52 0x00000000
ub2 kubaseq @56 0x0000
ub1 kubarec @58 0x00
ub2 ktbitflg @60 0x8000 (KTBFCOM)http://www.oracleplus.net
union _ktbitun, 2 bytes @62
sb2 _ktbitfsc @62 0
ub2 _ktbitwrp @62 0x0000
ub4 ktbitbas @64 0x0024e747
struct ktbbhitl[1], 24 bytes @68
struct ktbitxid, 8 bytes @68
ub2 kxidusn @68 0x000d
ub2 kxidslt @70 0x0003
ub4 kxidsqn @72 0x000000d7
struct ktbituba, 8 bytes @76
ub4 kubadba @76 0x0140026c
ub2 kubaseq @80 0x0202
ub1 kubarec @82 0x04
ub2 ktbitflg @84 0x0001 (NONE)
union _ktbitun, 2 bytes @86
sb2 _ktbitfsc @86 0
ub2 _ktbitwrp @86 0x0000
ub4 ktbitbas @88 0x00000000
BBED> set mode edit
MODE Edit
BBED> set count 16
COUNT 16
这里有一点需要注意的是,测试平台是X86的,如果是小机需要注意了,有一点不一样的地方,不需要高低位转换
BBED> modify /x 0080 offset 84
Warning: contents of previous BIFILE will be lost. Proceed (Y/N) y
File: /oracle/app/oracle/oradata/orcl1123/users01.dbf (0)
Block: 6451 Offsets: 84 to 99 Dba:0x00000000
————————————————————————
00800000 00000000 00000000 00000000
<32 bytes per line>
BBED> p ktbbh.ktbbhitl[1]
struct ktbbhitl[1], 24 bytes @68
struct ktbitxid, 8 bytes @68
ub2 kxidusn @68 0x000d
ub2 kxidslt @70 0x0003
ub4 kxidsqn @72 0x000000d7
struct ktbituba, 8 bytes @76
ub4 kubadba @76 0x0140026c
ub2 kubaseq @80 0x0202
ub1 kubarec @82 0x04
ub2 ktbitflg @84 0x8000 (KTBFCOM)
union _ktbitun, 2 bytes @86
sb2 _ktbitfsc @86 0
ub2 _ktbitwrp @86 0x0000
ub4 ktbitbas @88 0x00000000
这里可以看到,下面报了行为的itl值有问题
BBED> verify
DBVERIFY – Verification starting
FILE = /oracle/app/oracle/oradata/orcl1123/users01.dbf
BLOCK = 6451
Block Checking: DBA = 16783667, Block Type = KTB-managed data block
data header at 0x2a98b8727c
kdbchk: row locked by non-existent transaction
table=0 slot=0
lockid=2 ktbbhitc=3
Block 6451 failed with check code 6101
这里报错的原因很简单,就是因为行上面有一个锁,但是在ITL中没有找到相应的记录,一般会出现,手动提交事务的时候,table=0代表块中第1个表,slot=0代表表中第一行的记录,lockid=2代表ITL中第2条记录,这里我们只需要将行的lck清空就可以了。
DBVERIFY – Verification complete
Total Blocks Examined : 1
Total Blocks Processed (Data) : 1
Total Blocks Failing (Data) : 1
Total Blocks Processed (Index): 0
Total Blocks Failing (Index): 0
Total Blocks Empty : 0
Total Blocks Marked Corrupt : 0
Total Blocks Influx : 0
Message 531 not found; product=RDBMS; facility=BBED
BBED> p *kdbr[0]
rowdata[0]
———-
ub1 rowdata[0] @8023 0x2c
BBED> set offset 8023
OFFSET 8023
BBED> dump
File: /oracle/app/oracle/oradata/orcl1123/users01.dbf (0)
Block: 6451 Offsets: 8023 to 8038 Dba:0x00000000
————————————————————————
2c020e0e 4855414e 4754494e 475a484f
<32 bytes per line>
BBED> modify /x 2c00
File: /oracle/app/oracle/oradata/orcl1123/users01.dbf (0)
Block: 6451 Offsets: 8023 to 8038 Dba:0x00000000
————————————————————————
2c000e0e 4855414e 4754494e 475a484f
<32 bytes per line>
BBED> sum apply
Check value for File 0, Block 6451:
current = 0xbebc, required = 0xbebc
下面再也没有报错了
BBED> verify
DBVERIFY – Verification starting
FILE = /oracle/app/oracle/oradata/orcl1123/users01.dbf
BLOCK = 6451
DBVERIFY – Verification complete
Total Blocks Examined : 1
Total Blocks Processed (Data) : 1
Total Blocks Failing (Data) : 0
Total Blocks Processed (Index): 0
Total Blocks Failing (Index): 0
Total Blocks Empty : 0
Total Blocks Marked Corrupt : 0
Total Blocks Influx : 0
Message 531 not found; product=RDBMS; facility=BBED
本文固定链接: http://www.htz.pw/2014/06/26/%e5%b8%b8%e8%a7%81%e5%9d%8f%e5%9d%97%e7%b1%bb%e5%9e%8b%ef%bc%8cdbv%e6%8a%a5%e9%94%99%e4%bb%a3%e7%a0%81%ef%bc%9a6101.html | 认真就输
--------------------------------------ORACLE-DBA----------------------------------------
最权威、专业的Oracle案例资源汇总之【案例】Oracle数据库verify验证块报错4 dbv报错代码:6101解决办法