-oracle数据库恢复-Raid5数据恢复-RAID0数据恢复ORACLE优化与疑难问题讨论区 → oracle数据库数据文件内部结构详细解释


  共有6891人关注过本帖树形打印

主题:oracle数据库数据文件内部结构详细解释

oracle数据恢复-RAID5数据恢复-raid数据恢复
sunbing
  1楼 个性首页 | 信息 | 搜索 | 邮箱 | 主页 | UC


数据恢复 恢复数据
等级:超级版主 帖子:237 积分:2499 威望:0 精华:0 注册:2007-1-28 12:55:08
oracle数据库数据文件内部结构详细解释  发帖心情 Post By:2007-1-31 8:47:05

参考http://www.sosdb.com/article/datafile_block.htm


oracle8 9 的数据文件内部格式同理。


10.1.0~lgone@ONE.LG.OK> create table a(v varchar2(4000)) TABLESPACE t;


Table created.

10.1.0~lgone@ONE.LG.OK> insert into a values('a');

1 row created.


Start dump data blocks tsn: 17 file#: 5 minblk 10 maxblk 10
buffer tsn: 17 rdba: 0x0140000a (5/10)
//// buffer tsn:
数据文件对应的 tablespace 的 number 这只是dump文件中记录的数据而已
block 中是没有记录 tablespace 的 number 的


scn: 0x0000.0043890e seq: 0x05 flg: 0x02 tail: 0x890e0605
frmt: 0x02 chkval: 0x0000 type: 0x06=trans data
Block header dump: 0x0140000a
Object id on Block? Y
seg/obj: 0xd254 csc: 0x00.43890a itc: 2 flg: O typ: 1 - DATA
fsl: 0 fnx: 0x0 ver: 0x01

Itl Xid Uba Flag Lck Scn/Fsc
0x01 0x0004.00c.00001850 0x00801496.07b9.01 --U- 1 fsc 0x0000.0043890e
0x02 0x0000.000.00000000 0x00000000.0000.00 ---- 0 fsc 0x0000.00000000

data_block_dump,data header at 0x87e125c
//// data_block_dump,data header at 0x87e125c
其实这个block不是直接从 data buffer 中 dump 出来的这个表示真正dump时 block 的数据区的起始位置
也就是下面这部分开始的位置

=============== //// tsiz: hsiz: pbl: bdba: 在数据文件都是没有存储的
tsiz: 0x1fa0 //// Total data area size
8k的block: 8192-20(block head)-24(Transaction Header)-24*2(一个事务条)-4(block tail)=8096(0x1fa0)

hsiz: 0x14 //// Data header size 数据块头20个字节+数据块尾4个字节=24字节(0x14)
pbl: 0x087e125c //// Pointer to buffer holding the block
bdba: 0x0140000a
76543210

flag=--------
ntab=1
nrow=1
frre=-1
fsbo=0x14
fseo=0x1f9b
avsp=0x1f83
tosp=0x1f83
0xe:pti[0] nrow=1 offs=0
0x12:pri[0] offs=0x1f9b
block_row_dump:
tab 0, row 0, @0x1f9b
tl: 5 fb: --H-FL-- lb: 0x1 cc: 1
col 0: [ 1] 61
end_of_block_dump
End dump data blocks tsn: 17 file#: 5 minblk 10 maxblk 10




block 坏掉了还可以报:

ORA-600 (4519) Cache layer block type is incorrect
ORA-600 (4393) Check for Type for Segment header with free list
ORA-600 (4136) Check Rollback segment block
ORA-600 (4154) Check Rollback segment block

Ora-600[kcbzpb_1],[d],[kind],[chk] gets signaled when the block got corrupted in memory.
The only way it should be bad is if a stray store into memory destroyed the header or tail.
d = blocknumber, kind= kind of corruption detected,chk = checksum flag

ora-600[3398] and ora-600[3339]
ora-600[3398] is not in oracle 8.
ora-600[3398] means it failed a verification check before writing back to disk, so it must
be an in-memory corruption.
ora-600[3339] comes with ora-1578 and means either disk corruption or in memory corruption after read.
ora-600 [3339] has been removed from 7.2+
From 7.2+ ora-600 [3398] has become ora-600 [3374] with some checks added.

2进制存储格式
ALTER SESSION SET EVENTS '10289 trace name context forever, level 1';
ALTER SESSION SET EVENTS '10289 trace name context off';

[此贴子已经被作者于2007-1-31 8:50:04编辑过]


www.sosdb.com oracle数据恢复

qq:9417901

msn:glkgdj@hotmail.com
支持(0中立(0反对(0单帖管理 | 引用 | 回复 回到顶部
oracle数据恢复-RAID5数据恢复-raid数据恢复
Sonnet
  2楼 个性首页 | 信息 | 搜索 | 邮箱 | 主页 | UC


数据恢复 恢复数据
等级:新手上路 帖子:16 积分:107 威望:0 精华:0 注册:2007-1-29 8:50:22
  发帖心情 Post By:2007-1-31 10:32:19

DSI401,DSI402里有详细额说明~图片点击可在新窗口打开查看

支持(0中立(0反对(0单帖管理 | 引用 | 回复 回到顶部
oracle数据恢复-RAID5数据恢复-raid数据恢复
asser123
  3楼 个性首页 | 信息 | 搜索 | 邮箱 | 主页 | UC


数据恢复 恢复数据
等级:新手上路 帖子:35 积分:610 威望:0 精华:0 注册:2007-1-30 9:22:13
  发帖心情 Post By:2007-2-1 8:16:38

帖子很好,关注中.....


-------------------------------------


只为成功找方法,不为失败找借口!


MSN:weishiliang123@hotmail.com


-------------------------------------



只为成功找方法,不为失败找借口!

msn:weishiliang123@hotmail.com

支持(0中立(0反对(0单帖管理 | 引用 | 回复 回到顶部
oracle数据恢复-RAID5数据恢复-raid数据恢复
ningkeking
  4楼 个性首页 | 信息 | 搜索 | 邮箱 | 主页 | UC


数据恢复 恢复数据
等级:新手上路 帖子:7 积分:113 威望:0 精华:0 注册:2007-3-30 14:25:12
  发帖心情 Post By:2007-4-12 17:09:46

up!

支持(0中立(0反对(0单帖管理 | 引用 | 回复 回到顶部

返回版面帖子列表

oracle数据库数据文件内部结构详细解释








签名