使用转换计划
中药方剂 2021年09月06日 浏览:4 次
很多时候,我们可以从Oracle的Trace文件中获得Block的DBA(Data Block Address),有时候需要对这个地址进行转换才能得到相应的Block地址。
有的trace文件中已经包含了地址转换,例如:
Start dump data blocks tsn: 4 file#: 4 minblk 465 maxblk 465
buffer tsn: 4 rdba: 0x010001d1 (4/465)而有时候trace文件里只包含一个RDBA,比如上周我们遇到的一个案例:
oer 8102.2 - obj# 111465, rdba: 0x08811ba3
kdk key 8102.2:
ncol: 2, len: 15
key: (15): 07 78 6a 08 1f 01 14 15 06 06 00 00 06 00 73
先把蛋糕做大 mask: (4096):这里的Rdba我们怎样才能转换为文件号和数据块号呢?
通过手工转换,可以参考如下文章:
Oracle同时提供一个系统包 dbms_utility 可以用于对RDBA进行转换。
注意,对于上面的 rdba: 0x08811ba3,首先要做一个16进制到10进制的转换,转换方法参考:
下面我们使用dbms_utility 来进行转换:
SQL variable file# number
SQL variable block# number
SQL execute :file#:=dbms_ta_block_address_file(to_number(\'8811ba3\',\'xxxxxxx\'));
PL/SQL procedure successfully completed.
SQL execute :block#:=dbms_ta_block_address_block(to_number(\'8811ba3\',\'xxxxxxx\'));
PL/SQL procedure successfully completed.
SQL print file#
FILE#
----------
34
SQL print block#
BLOCK#
----------
72611
这样就可以通过dba_extents获得相关对象信息。
当然这里oer 8102.2 的信息已经告诉我们,出问题的是一个索引:
$ oerr ora 8102
08102, 00000, \"index key not found, obj# %s, dba %s (%s)\"
// *Cause: Internal error: possible inconsistency in index
// *Action: Send trace file to your customer support representative, along
// with information on reproducing the error-The End-
查看本文来源
沈阳治疗妇科费用治疗斑秃的好方法
成都癫痫病医院预约挂号

- 上一篇: 使用克隆一个数据库物业
- 下一篇 使用和检查数据文件中的坏块覆盖
-
心脏病发作时可咳嗽自救
2019-07-16
-
贵州贵阳完善覆盖城乡的中医药服务网络
2019-07-13
-
丰胸食谱打造完美双峰
2019-07-12
-
专家提醒盲目针灸减肥小心传染上病
2019-07-11
-
人工栽培雪莲花的要点
2019-07-06
-
以鱼腥草为主的方剂
2019-07-06