设为首页 加入收藏

TOP

构建并修复逻辑损坏块和物理损坏块(四)
2014-11-24 00:34:04 来源: 作者: 【 】 浏览:38
Tags:构建 修复 逻辑 损坏 物理
bbh, 96 bytes @20 ub1 ktbbhtyp @20 union ktbbhsid, 4 bytes @24 struct ktbbhcsc, 8 bytes @28 b2 ktbbhict @36 ub1 ktbbhflg @38 ub1 ktbbhfsl @39 ub4 ktbbhfnx @40 struct ktbbhitl[3], 72 bytes @44 struct kdbh, 14 bytes @124 ub1 kdbhflag @124 b1 kdbhntab @125 b2 kdbhnrow @126 sb2 kdbhfrre @128 sb2 kdbhfsbo @130 sb2 kdbhfseo @132 b2 kdbhavsp @134 b2 kdbhtosp @136 struct kdbt[1], 4 bytes @138 b2 kdbtoffs @138 b2 kdbtnrow @140 sb2 kdbr[96] @142 ub1 freespace[868] @334 ub1 rowdata[6986] @1202 ub4 tailchk @8188 BBED> p *kdbr[1] rowdata[6844] ------------- ub1 rowdata[6844] @8046 0x2c BBED> set offset 8046 OFFSET 8046 BBED> x /rccnncttccccc rowdata[6844] @8046 ------------- flag@8046: 0x2c (KDRHFL, KDRHFF, KDRHFH) lock@8047: 0x00 cols@8048: 12 col 0[7] @8049: I_USER1 col 1[0] @8057: *NULL* col 2[2] @8058: 44 col 3[2] @8061: 44 col 4[5] @8064: INDEX col 5[7] @8070: 2010-04-20 08:24:28 col 6[7] @8078: 2010-04-20 08:24:28 col 7[19] @8086: 2010-04-20:08:24:28 col 8[5] @8106: VALID col 9[1] @8112: N col 10[1] @8114: N col 11[1] @8116: N BBED> set offset 8046 OFFSET 8046 BBED> modify /x ff File: /home/app/oraten/oradata/oraten/tbs101.dbf (5) Block: 20 Offsets: 8046 to 8191 Dba:0x01400014 ------------------------------------------------------------------------ ff000c07 495f5553 455231ff 02c12d02 c12d0549 4e444558 07786e04 1409191d 07786e04 1409191d 13323031 302d3034 2d32303a 30383a32 343a3238 0556414c 4944014e 014e014e 2c000c05 49434f4c 24ff02c1 1502c103 05544142 4c450778 6e041409 191d0778 6e041409 211a1332 3031302d 30342d32 303a3038 3a32343a 32380556 414c4944 014e014e 014e0106 5af8 <32 bytes per line> BBED> x /rccnncttccccc rowdata[6844] @8046 ------------- flag@8046: 0xff (KDRHFN, KDRHFP, KDRHFL, KDRHFF, KDRHFD, KDRHFH, KDRHFC, KDRHFK) lock@8047: 0x00 cols@8048: 0 ckix@8049: 7 BBED> sum apply Check value for File 5, Block 20: current = 0xb533, required = 0xb533

此时我们通过sqlpus查询并编辑t1

SQL> alter system flush buffer_cache;

System altered.

SQL> select count(*) from t1;

  COUNT(*)
----------
     22944

SQL> select sum(length(object_name)) from t1;

SUM(LENGTH(OBJECT_NAME))
------------------------
		  531915

SQL> update t1 set object_name = rownum;
update t1 set object_name = rownum
       *
ERROR at line 1:
ORA-00607: Internal error occurred while making a change to a data block
ORA-00600: internal error code, arguments: [kddummy_blkchk], [5], [20], [6251],
[], [], [], []


SQL> rollback;

Rollback complete.

SQL> update t1 set object_name = rownum;
update t1 set object_name = rownum
       *
ERROR at line 1:
ORA-01578: ORACLE data block corrupted (file # 5, block # 20)
ORA-01110: data file 5: '/home/app/oraten/oradata/oraten/tbs101.dbf'

可见此时oracle认为发生了逻辑错误,查看block20的标志位发现, 逻辑损坏的标记(14字节修改位ff,tailchk中包含ff)已经打上。

BBED> set file 5
	FILE#          	5

BBED> set block 20
	BLOCK#         	20

BBED> set offset 14
	OFFSET         	14

BBED> dump /v count 12
 File: /home/app/oraten/oradata/oraten/tbs101.dbf (5)
 Block: 20      Offsets:   14 to   25  Dba:0x01400014
-------------------------------------------------------
 ff0438b5 00000100 00001ecb          l ..8.........

 <16 bytes per line>

BBED> set offset 8188
	OFFSET         	8188

BBED> dump /v 
 File: /home/app/oraten/oradata/oraten/tbs101.dbf (5)
 Block: 20      Offsets: 8
首页 上一页 1 2 3 4 下一页 尾页 4/4/4
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇数据同步之各站点同步表触发器创建 下一篇校验当前实例下摆的所有过程值

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: