如何阅读oracle数据块的dump文件

 我来答
huanglenzhi
推荐于2016-06-21 · 知道合伙人数码行家
huanglenzhi
知道合伙人数码行家
采纳数:117538 获赞数:517204
长期从事计算机组装,维护,网络组建及管理。对计算机硬件、操作系统安装、典型网络设备具有详细认知。

向TA提问 私信TA
展开全部
  dump出Oracle block后,可以看到事物槽,包含有事物槽号(ITL),XID,UBA,FLAG,LCK,SCN。
  本文主要讨论FLAG标记的规则,其中FLAG在block中占用1个字节大小。
  data block的dump信息中ITL中的xid:0x000c.011.000000e6是由undo信息组成的:xidusn.xidslot.xidsqn(wrap#)
  data block的dump信息中ITL中的uba:0x00800554.00d6.28是由uba(undo block address).UBASQN.UBAREC
  我们知道FLAG各种标记位代表不同意思,以下为不同标记位代表不同意思:
  —- = transaction is active, or committed pending cleanout
  C— = transaction has been committed and locks cleaned out
  -B– = this undo record contains the undo for this ITL entry
  –U- = transaction committed (maybe long ago); SCN is an upper bound
  —T = transaction was still active at block cleanout SCN
  看上面的标记位有一定的规律可循,以下为测试过程,其中07代表锁的行数
  BBED> modify 0×0700
  Itl Xid Uba Flag Lck Scn/Fsc
  0×01 0×0023.02f.0000004e 0×0280073e.0010.2b –U- 3 fsc 0×0000.0811d995
  0×02 0×0029.02d.0000004d 0×028008c5.0010.37 —- 7 fsc 0×0a00.0811d8b7
  1.事务开始时,需要在回滚段事务表上分配一个事务槽(alter system dump undo header '回滚段名称');
  2.在数据块头部获取一个ITL事务槽,该事务槽指向回滚段头的事务槽(alter system dump datafile .. block ..);
  3.在修改数据之前,需要记录前镜像信息,这个信息以UNDO RECORD的形式存储在回滚段中,回滚段头指向该记录
  (通过回滚段头事务表的信息,alter system dump datafile .. block ..查看回滚记录);
  4.锁定修改行,修改行锁定位(lb-lock byte)指向ITL事务槽,可以dump数据块查看;
  5.数据修改可以进行;
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式