Oracle 12C Formatted Block Dump

简介:

Oracle 12C Formatted Block Dump
.可以从RDBMS中dump数据块
.在用户dump目录中会生成一个跟踪文件包含dump信息

对7号文件中的135号数据块执行dump

SQL> oradebug setmypid
Statement processed.
SQL> oradebug tracefile_name
/u01/app/oracle/diag/rdbms/shardcat/shardcat/trace/shardcat_ora_13182.trc
SQL> alter system dump datafile 7 block 135;

System altered.
对于任何数据块dump都有一个数据块头信息。它决定了剩余dump的格式。在任何Oracle块dump的头部应该可以看到块头信息:
Rdba:数据块的相对DBA
Scn:SCN序列号
Seq:序列号:
SEQ->0 / non-logged changes - do not advance seq# /
SEQ->(UB1MAXVAL-1) / maximum possible sequence number /
SEQ->(UB1MAXVAL) / seq# to indicate a block is corrupt, equal to FF /

Flg: Flag(在kcbh.h中定义)
Tail:一致性数据用来验证数据块的开始与结束是否是相同版本(它由SCNBase的低阶两字节加上数据块类型加上SCN的序列号)
Frmt:数据块格式:在Oracle 12c中是2
Chkval数据块的选项检查值:如果db_block_checksum=true
Type:数据块类型(在kcb.h中定义)
Rdba:相对数据块地址
Seg/Obj:Seg/Obj ID dump输出的Seg/Obj为0x1af27

SQL> select to_number('1af27','xxxxxx') from dual;

TO_NUMBER('1AF27','XXXXXX')

                 110375

SQL> select object_id,object_name from dba_objects where owner='JY' and object_name='T1';

OBJECT_ID OBJECT_NAME
---------- ------------------------------

110375 T1

Csc:最近数据块清除
itc: itl插槽数量
Flg: E
Typ: 1=DATA;2=INDEX
Itl:相关事务列表索引(ITLs由initrans和maxtrans来决定)
Xid:事务ID(UndoSeg.Slot.Wrap)
Uba:Undo段地址(UndoDBA.SeqNo.RecordNo)
Flg:C=Committed;U=Commit Upper Bound;T=Active at CSC;B=Rollback of this UBA gives before image of the ITL.
Lck:这个事务所影响的行数
Scn/Fsc:Scn=提交事务的SCN号;Fsc=Free space credit(bytes)
例如:

* 2020-02-07T14:35:53.082746+08:00
Start dump data blocks tsn: 4 file#:7 minblk 135 maxblk 135
Block dump from cache:
Dump of buffer cache at level 4 for pdb=0 tsn=4 rdba=29360263
Block dump from disk:
buffer tsn: 4 rdba: 0x01c00087 (7/135)
scn: 0x1e1174a seq: 0x09 flg: 0x06 tail: 0x174a0609
frmt: 0x02 chkval: 0xba74 type: 0x06=trans data
Hex dump of block: st=0, typ_found=1
......省略......

Block header dump: 0x01c00087
Object id on Block? Y
seg/obj: 0x1af27 csc: 0x0000000001e11748 itc: 2 flg: E typ: 1 - DATA

 brn: 0  bdba: 0x1c00080 ver: 0x01 opc: 0
 inc: 0  exflg: 0

Itl Xid Uba Flag Lck Scn/Fsc
0x01 0x0008.003.00006d30 0x010001c2.2499.09 --U- 8 fsc 0x0000.01e1174a
0x02 0x0008.01b.00003a9a 0x010002b5.114f.20 C--- 0 scn 0x0000000001286184
bdba: 0x01c00087
Tsiz:总的数据区域大小

SQL> select to_number('1f98','xxxxxx') from dual;

TO_NUMBER('1F98','XXXXXX')

                  8088

Hsiz:数据块头大小

SQL> select to_number('22','xxxxxx') from dual;

TO_NUMBER('22','XXXXXX')

                  34

Pbl:持有数据块的缓存指针
Flag:N=pctfree hit(clusters);F=do not put on free list;K=flushable cluster keys
Ntab:表的数量(在clusters中大于1)
Nrow:行记录数
Frre:第一个可用行索引项;-1=没有添加
Fsbo:可用空间开始偏移量
Fseo:可用空间结束偏移量
Avsp:数据块中可用空间
Tosp:当所有事务提交后总的可用空间
Nrow:第一个表的行数
例如:

data_block_dump,data header at 0x7f799676f064

tsiz: 0x1f98
hsiz: 0x22
pbl: 0x7f799676f064

 76543210

flag=--------
ntab=1
nrow=8
frre=-1
fsbo=0x22
fseo=0x1efa
avsp=0x1f29
tosp=0x1f2b
0xe:pti[0] nrow=8 offs=0
0x12:pri[0] offs=0x1f47
0x14:pri[1] offs=0x1f3d
0x16:pri[2] offs=0x1f33
0x18:pri[3] offs=0x1f29
0x1a:pri[4] offs=0x1f1f
0x1c:pri[5] offs=0x1f15
0x1e:pri[6] offs=0x1f08
0x20:pri[7] offs=0x1efa
Oracle Formatted Block Dump: Data Layer
Tab: tab 0,row 0,offset
Cc:在这个行片段中的列数
Lb:锁字节:这个行被锁定的ITL条目
Fb:Flag字节
H=行片段头;K=集簇键;C=集簇表成员;D=删除的行记录;F=第一个数据片;L=最后数据片;P=紧接前一个数据片的第一个列
N=紧接下一个数据片的最后一个列
Tl:行大小(字节数加上数据)
Col:列数据
例如:

block_row_dump:
tab 0, row 0, @0x1f47
tl: 10 fb: --H-FL-- lb: 0x1 cc: 2
col 0: [ 2] c1 02
col 1: [ 3] 6d 5f 41
tab 0, row 1, @0x1f3d
tl: 10 fb: --H-FL-- lb: 0x1 cc: 2
col 0: [ 2] c1 03
col 1: [ 3] 6d 5f 42
tab 0, row 2, @0x1f33
tl: 10 fb: --H-FL-- lb: 0x1 cc: 2
col 0: [ 2] c1 04
col 1: [ 3] 6d 5f 43
tab 0, row 3, @0x1f29
tl: 10 fb: --H-FL-- lb: 0x1 cc: 2
col 0: [ 2] c1 05
col 1: [ 3] 6d 5f 44
tab 0, row 4, @0x1f1f
tl: 10 fb: --H-FL-- lb: 0x1 cc: 2
col 0: [ 2] c1 06
col 1: [ 3] 6d 5f 45
tab 0, row 5, @0x1f15
tl: 10 fb: --H-FL-- lb: 0x1 cc: 2
col 0: [ 2] c1 07
col 1: [ 3] 6d 5f 46
tab 0, row 6, @0x1f08
tl: 13 fb: --H-FL-- lb: 0x1 cc: 2
col 0: [ 2] c1 08
col 1: [ 6] 6d 5f 4a 59 48 59
tab 0, row 7, @0x1efa
tl: 14 fb: --H-FL-- lb: 0x1 cc: 2
col 0: [ 2] c1 09
col 1: [ 7] 6d 5f 4a 59 59 59 4c
end_of_block_dump
End dump data blocks tsn: 4 file#: 7 minblk 135 maxblk 135

相关实践学习
部署高可用架构
本场景主要介绍如何使用云服务器ECS、负载均衡SLB、云数据库RDS和数据传输服务产品来部署多可用区高可用架构。
负载均衡入门与产品使用指南
负载均衡(Server Load Balancer)是对多台云服务器进行流量分发的负载均衡服务,可以通过流量分发扩展应用系统对外的服务能力,通过消除单点故障提升应用系统的可用性。 本课程主要介绍负载均衡的相关技术以及阿里云负载均衡产品的使用方法。
目录
相关文章
|
7月前
|
Oracle 关系型数据库
Oracle 11g和12c的主要区别
Oracle 11g和12c的主要区别
|
Oracle 关系型数据库 5G
Oracle 12C rman备份占用大量临时表空间
Oracle 12C rman备份占用大量临时表空间
387 0
|
11月前
|
存储 SQL 监控
Oracle BCT(Block Change Tracking)与增量备份---发表在数据和云
BCT(Block Change Tracking)是Oracle从10g开始有的特性。BCT的原理是记录数据文件里每个数据块的变化,并把这些变化信息保存在BCT的跟踪文件中。
302 0
|
11月前
|
Oracle 关系型数据库
oracle 12c新功能 recover table恢复单个表
不支持sys用户和system表空间的表
|
11月前
|
Oracle 关系型数据库 数据库
|
11月前
|
Oracle 关系型数据库 数据库
|
Oracle 关系型数据库
静默安装Oracle 12c单机环境软件
静默安装Oracle 12c单机环境软件
103 0
|
存储 网络协议 Oracle
Oracle 12c rman duplicate网卡offload引起文件坏块问题
Oracle 12c rman duplicate网卡offload引起文件坏块问题
163 0
|
SQL 存储 Oracle
在Oracle 12c中,在RMAN方面有哪些增强的新特性?
在Oracle 12c中,在RMAN方面有哪些增强的新特性?
147 0

推荐镜像

更多