Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2796769
  • 博文数量: 389
  • 博客积分: 4177
  • 博客等级: 上校
  • 技术积分: 4773
  • 用 户 组: 普通用户
  • 注册时间: 2008-11-16 23:29
文章分类

全部博文(389)

分类: Oracle

2009-09-11 16:50:42

 我们可以查看表记录是存放在哪个数据块里,通过以下语句: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
阅读(2779) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~