oracle block 结构一

    我们可以查看表记录是存放在哪个数据块里,通过以下语句:
    select dbms_rowid.rowid_block_number(rowid) from tablename,接下来,我们查询当前连接的spid信息.
    select p.spid,s.username from v$process p inner join v$session s on p.addr=s.paddr
这样我们就可以在udump目录下找到当前连接的trace文件信息了。接下来,对数据块进行dump.
    alter system dump datafile <文件号> block <块号>.在trace中生成的信息如下。
第一部分如下:
 buffer tsn: 0 rdba: 0x0040d9b2 (1/55730)
scn: 0x0000.0005951e seq: 0x02 flg: 0x06 tail: 0x951e0602
frmt: 0x02 chkval: 0xd3e0 type: 0x06=trans data
Block header dump:  0x0040d9b2
rdba代表块号,
scn代表块的SCN号,
seq,代表在块的状态,一般FF代表块是坏的,一般在offset 0X14的位置,BBED工具就是通功强行修改这个位置的数据来达到改变块     的状态。
flg,代表块的标志位。
tail用来检查一致性的值,
frmg代表块的格式,在oracle 8i以上,一般为02
chkval,数据块的校验位,在db_block_checksum设为true有效。
type,代表块的类型。
第二部分:
 seg/obj: 0xc0c9  csc: 0x00.58d5a  itc: 2  flg: O  typ: 1 - DATA
     fsl: 0  fnx: 0x0 ver: 0x01
 
 Itl           Xid                  Uba         Flag  Lck        Scn/Fsc
0x01   0x0004.000.00000040  0x008000cc.004e.13  --U-    2  fsc 0x0000.00058d9d
0x02   0x0005.020.00000035  0x008009eb.002f.04  --U-    5  fsc 0x0000.0005951e
seg/boj代表块的对像号。
csc代表最后一次block cleanout SCN号,
itc代表块的transaction slot最大数
typ代表数据块的类型。
itl代表当前对块进行操作的事务编号,
xid代表该事务的事务号,
UBA代表该事务对应的undo block address.
flg代表事务状态。u代表未提交,c代表提交,T代表活动的。
LCK代表事务影响的行数。
FSC代表在事务提交时生成的SCN号。
FCL和FNX在auto segment space management总为0
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值