- 浏览: 7856131 次
- 性别:
- 来自: 广州
文章分类
- 全部博客 (2425)
- 软件工程 (75)
- JAVA相关 (662)
- ajax/web相关 (351)
- 数据库相关/oracle (218)
- PHP (147)
- UNIX/LINUX/FREEBSD/solaris (118)
- 音乐探讨 (1)
- 闲话 (11)
- 网络安全等 (21)
- .NET (153)
- ROR和GOG (10)
- [网站分类]4.其他技术区 (181)
- 算法等 (7)
- [随笔分类]SOA (8)
- 收藏区 (71)
- 金融证券 (4)
- [网站分类]5.企业信息化 (3)
- c&c++学习 (1)
- 读书区 (11)
- 其它 (10)
- 收藏夹 (1)
- 设计模式 (1)
- FLEX (14)
- Android (98)
- 软件工程心理学系列 (4)
- HTML5 (6)
- C/C++ (0)
- 数据结构 (0)
- 书评 (3)
- python (17)
- NOSQL (10)
- MYSQL (85)
- java之各类测试 (18)
- nodejs (1)
- JAVA (1)
- neo4j (3)
- VUE (4)
- docker相关 (1)
最新评论
-
xiaobadi:
jacky~~~~~~~~~
推荐两个不错的mybatis GUI生成工具 -
masuweng:
(转)JAVA获得机器码的实现 -
albert0707:
有些扩展名为null
java 7中可以判断文件的contenttype了 -
albert0707:
非常感谢!!!!!!!!!
java 7中可以判断文件的contenttype了 -
zhangle:
https://zhuban.me竹板共享 - 高效便捷的文档 ...
一个不错的网络白板工具
今天学习了oracle的数据块的相关知识,这里再兼谈下trac文件的分析,
1 创建一个表:
SQL> create table block_test
2 (id varchar2(4) primary key,
3 name varchar2(20))
4 tablespace test;
Table created
SQL> insert into block_test values (’0001′,’TOM’);
1 row inserted
SQL> commit;
Commit complete
我们建立了一个数据表block_test ,并向其中插入了一条数据。想要看这个表中的数据是怎么样在oracle中存储的,首先要找到这条数据库存储在哪个数据文件上,哪个数据块中。
查找数据块地址:
SQL> select id,name,rowid from block_test;
ID NAME ROWID
—- ——————– ——————
0001 TOM AAAOJuAANAAAATCAAA
SQL>select dbms_rowid.rowid_relative_fno(’AAAOJuAANAAAATCAAA’) file_num,
dbms_rowid.rowid_block_number(’AAAOJuAANAAAATCAAA’) block_num from dual;
file_num block_num
—————————— ——————————
8 1218
由此得知这条记录存储在数据中的标号为8的数据文件的第2523个块中。
导出data block结构:
SQL> alter system dump datafile 8 block 1218;
System altered
2 这个时候,可以先看下trc文件放在什么地方,
show parameter dump
这里我的是放在oracle\udump下,
按时间顺序找出这个trc文件。
3 注意,这里插一下,我们可以直接打开这个trc文件去看,而不是去用分析工具去分析这个文件,本文最后会再说如何用工具去分析这个trac文件:
打开这个TRAC文件后,发现如下:
Start dump data blocks tsn: 14 file#: 13 minblk 1218 maxblk 1218
buffer tsn: 14 rdba: 0x034004c2 (13/1218)
scn: 0x0000.00d323eb seq: 0x05 flg: 0x06 tail: 0x23eb0605
frmt: 0x02 chkval: 0xc1e1 type: 0x06=trans data
Block header dump: 0x034004c2
Object id on Block? Y
seg/obj: 0xe26e csc: 0x00.d323e2 itc: 2 flg: O typ: 1 - DATA
fsl: 0 fnx: 0x0 ver: 0x01
Itl Xid Uba Flag Lck Scn/Fsc
0x01 0x0004.01a.000031e9 0x008073ae.183a.30 --U- 1 fsc 0x0000.00d323eb
0x02 0x0000.000.00000000 0x00000000.0000.00 ---- 0 fsc 0x0000.00000000
data_block_dump,data header at 0x40c025c
===============
tsiz: 0x1fa0
hsiz: 0x14
pbl: 0x040c025c
bdba: 0x034004c2
76543210
flag=--------
ntab=1
nrow=1
frre=-1
fsbo=0x14
fseo=0x1f94
avsp=0x1f80
tosp=0x1f80
0xe:pti[0] nrow=1 offs=0
0x12:pri[0] offs=0x1f94
block_row_dump:
tab 0, row 0, @0x1f94
tl: 12 fb: --H-FL-- lb: 0x1 cc: 2
col 0: [ 4] 30 30 30 31
col 1: [ 3] 54 4f 4d
end_of_block_dump
解析下;
tsn:data block所在表空间序号
file#: data block所在数据文件序号
minblk:dump的开始块号
maxblk:dump的终止块号
rdba:数据块地址
scn:scn号
seq:序列号
tail:保持一致性 lower scn + type + seq
frmt: oracle8以上为2
chkval:可选择的校验值
type:block的类型
itc: itl slots的个数,此时多少个事务在对本data block进行操作
flg: 0=on the freelist
fsl: itl tx freelist slot
fnx: dba of next block on freelist
Itl:interested transaction list index
Xid:transaction id
Uba:undo address
Flag:事务状态标志
Lck:事物所影响行的数量
col 0: [ 4] 30 30 30 31 //第一列中数据长度为4,数据为30 30 30 31
col 1: [ 3] 54 4f 4d //第一列中数据长度为3,数据为54 4f 4d
以上信息就是我们刚才查找的那条记录在数据库中真实的存储情况
table:记录所在表的序号
row:记录在块中所在行号
tl:rowsize(number of bytes plus data)
fb:记录的状态
lb:lock byte—itl entry then has this row locked
cc: number of columns in this row piece
end_of_block_dump
End dump data blocks tsn: 7 file#: 8 minblk 2523 maxblk 2523
4) 最后说下如何使用跟踪文件去跟踪,
这里有篇好文,讲的很好,地址是:
http://blog.sina.com.cn/s/blog_4b1c9e12010007a0.html
1 创建一个表:
SQL> create table block_test
2 (id varchar2(4) primary key,
3 name varchar2(20))
4 tablespace test;
Table created
SQL> insert into block_test values (’0001′,’TOM’);
1 row inserted
SQL> commit;
Commit complete
我们建立了一个数据表block_test ,并向其中插入了一条数据。想要看这个表中的数据是怎么样在oracle中存储的,首先要找到这条数据库存储在哪个数据文件上,哪个数据块中。
查找数据块地址:
SQL> select id,name,rowid from block_test;
ID NAME ROWID
—- ——————– ——————
0001 TOM AAAOJuAANAAAATCAAA
SQL>select dbms_rowid.rowid_relative_fno(’AAAOJuAANAAAATCAAA’) file_num,
dbms_rowid.rowid_block_number(’AAAOJuAANAAAATCAAA’) block_num from dual;
file_num block_num
—————————— ——————————
8 1218
由此得知这条记录存储在数据中的标号为8的数据文件的第2523个块中。
导出data block结构:
SQL> alter system dump datafile 8 block 1218;
System altered
2 这个时候,可以先看下trc文件放在什么地方,
show parameter dump
这里我的是放在oracle\udump下,
按时间顺序找出这个trc文件。
3 注意,这里插一下,我们可以直接打开这个trc文件去看,而不是去用分析工具去分析这个文件,本文最后会再说如何用工具去分析这个trac文件:
打开这个TRAC文件后,发现如下:
Start dump data blocks tsn: 14 file#: 13 minblk 1218 maxblk 1218
buffer tsn: 14 rdba: 0x034004c2 (13/1218)
scn: 0x0000.00d323eb seq: 0x05 flg: 0x06 tail: 0x23eb0605
frmt: 0x02 chkval: 0xc1e1 type: 0x06=trans data
Block header dump: 0x034004c2
Object id on Block? Y
seg/obj: 0xe26e csc: 0x00.d323e2 itc: 2 flg: O typ: 1 - DATA
fsl: 0 fnx: 0x0 ver: 0x01
Itl Xid Uba Flag Lck Scn/Fsc
0x01 0x0004.01a.000031e9 0x008073ae.183a.30 --U- 1 fsc 0x0000.00d323eb
0x02 0x0000.000.00000000 0x00000000.0000.00 ---- 0 fsc 0x0000.00000000
data_block_dump,data header at 0x40c025c
===============
tsiz: 0x1fa0
hsiz: 0x14
pbl: 0x040c025c
bdba: 0x034004c2
76543210
flag=--------
ntab=1
nrow=1
frre=-1
fsbo=0x14
fseo=0x1f94
avsp=0x1f80
tosp=0x1f80
0xe:pti[0] nrow=1 offs=0
0x12:pri[0] offs=0x1f94
block_row_dump:
tab 0, row 0, @0x1f94
tl: 12 fb: --H-FL-- lb: 0x1 cc: 2
col 0: [ 4] 30 30 30 31
col 1: [ 3] 54 4f 4d
end_of_block_dump
解析下;
tsn:data block所在表空间序号
file#: data block所在数据文件序号
minblk:dump的开始块号
maxblk:dump的终止块号
rdba:数据块地址
scn:scn号
seq:序列号
tail:保持一致性 lower scn + type + seq
frmt: oracle8以上为2
chkval:可选择的校验值
type:block的类型
itc: itl slots的个数,此时多少个事务在对本data block进行操作
flg: 0=on the freelist
fsl: itl tx freelist slot
fnx: dba of next block on freelist
Itl:interested transaction list index
Xid:transaction id
Uba:undo address
Flag:事务状态标志
Lck:事物所影响行的数量
col 0: [ 4] 30 30 30 31 //第一列中数据长度为4,数据为30 30 30 31
col 1: [ 3] 54 4f 4d //第一列中数据长度为3,数据为54 4f 4d
以上信息就是我们刚才查找的那条记录在数据库中真实的存储情况
table:记录所在表的序号
row:记录在块中所在行号
tl:rowsize(number of bytes plus data)
fb:记录的状态
lb:lock byte—itl entry then has this row locked
cc: number of columns in this row piece
end_of_block_dump
End dump data blocks tsn: 7 file#: 8 minblk 2523 maxblk 2523
4) 最后说下如何使用跟踪文件去跟踪,
这里有篇好文,讲的很好,地址是:
http://blog.sina.com.cn/s/blog_4b1c9e12010007a0.html
发表评论
-
mybatis generator中的字段大小写生成问题
2017-10-22 19:35 11253mybatis generator插件中,如果 mysql数据 ... -
MySQL统计一个列中不同值的数量
2017-07-11 14:04 16233https://yiqiwuliao.com/post/mys ... -
mysql 1449 : The user specified as a definer ('root'@'%') does not exist 解决方法
2017-03-02 09:44 1729权限问题,授权 给 root 所有sql 权限 mysql ... -
几个不错的MYSQL 优化TIPS
2016-11-19 12:30 768图片来自http://imysql.com/的PDF分享 [ ... -
powerdesign 逆向ORACLE的坑
2016-09-27 17:08 526要注意的是,在WIN 64中,如果要用powerdesin 来 ... -
( 转)mysql中删除两条重复记录中的一条
2015-10-19 20:19 1298| id | createTime | labId | pub ... -
mysql中sql语句=,>的时候的索引设置
2015-05-02 12:27 1287在 https://www.percona.com/blog/ ... -
mysql中profile的使用
2015-04-30 11:11 2188mysql 的 sql 性能分析器主要用途是显示 sql 执行 ... -
mysql中的sql mode
2015-04-13 11:29 1114mysql sql mode小结 1 sql mode可以 ... -
PROCEDURE ANALYSE()为mysql提高性能提供建议
2015-04-02 16:37 1409procedure analyse();语法如下 select ... -
mongodb中意外退出的问题
2015-02-11 14:32 1311mongodb启动的时候,意外退出: Unclean shut ... -
mysql 5.5中保留字查询
2014-06-05 23:16 1456mysql 5.5中保留字查询 http://www.5is ... -
(转)oracle 临时表空间的增删改查
2014-03-18 12:44 1102oracle 临时表空间的增删改查 1、查看临时表空间 (d ... -
pl-sql developer安装
2014-02-07 09:16 1096一直都是机器本机上有oracle,所以装pl sql deve ... -
oracle中的nvl,nvl2等参数
2013-12-26 11:18 22441.nul函数将一个null值转换为一个实际的值。 数据类型可 ... -
Oracle中的ROWNUM rowid 以及MySQL中实现rownum功能类似的语句
2013-12-26 11:08 2329http://gong-10140.iteye.com/blo ... -
ORACLE XE版本的限制
2013-12-07 08:11 361310g中用户数据最大为4G, 11G中最大为11G,如果超出大 ... -
oracle中监控索引是否可用
2013-11-04 07:22 1039在oracle中,可以使用如下的方法监控索引是否可用: a ... -
mysql 5.6中的时间类型的新精度介绍
2013-10-28 09:33 8375留意到mysql 5.6中,可以使用select now(6) ... -
<<oracle索引技术》读书笔记1
2013-08-25 16:23 1291expert indexing in oracle datab ...
相关推荐
trac install file22
trac工具包 安装文件 和说明文档 安装文件 和说明文档
Trac插件开发Trac插件开发Trac插件开发Trac插件开发
Apache+Trac配置Apache+Trac配置Apache+Trac配置
Trac应用于项目管理,经典阐述,TRAC管理首选教材 0. 前言 - 1 - 0.1. 我们遇到了什么问题? - 1 - 0.2. 什么是TRAC? - 2 - 0.3. TRAC可以做什么? - 3 - 0.4. TRAC会带来什么变化? - 3 - 1. 定义角色/活动 - 4 - 1.1...
trac插件开发指南,用于开发TRAC的插件
Trac用户使用介绍Trac用户使用介绍Trac用户使用介绍
trac汉化安装文档和相关需要安装的程序,简单便捷的让你安装trac
Trac-0.12.2及配套 含:Trac Babel Bitten Genshi Python
很久以来就有的想法,给我们的产品开发...使用过vss,虽说简洁,但功能不完善而且有很多小BUG,所以放弃,在次研究Trac,发现Trac非常符合我的要求:免费、开源、跨平台、轻量级、高度可扩展,下面介绍下svn+trac的配置
SVN+Trac+Apache的配置文件
支持trac server和gitweb的apache2 default配置文件。
Trac是一个为软件开发项目需要而集成了Wiki和问题跟踪管理系统的应用平台,是一个开源软件应用。Trac以简单的方式建立了一个软件项目管理的Web应用,以帮助开发人员更好地写出高质量的软件;Trac应用力求不影响现有...
SVN+Trac安装笔记
精选安装trac截图详解,均有详图描述,轻松安装trac
用这种方法TRAC的安装也仅仅是几个文件拷贝而已。从此Windows上的SVN开发服务器配置不再困难,而且具有完整的功能:Trac、客户端修改密码、文件共享,这些功能在团队开发中非常有用。采用这种方法配置服务器,5分钟...
Trac安装包,可以与SVN集成,供软件开发人员管理软件版本
Apache+Trac+SVN安装测试指导
TRAC教程【原创】 非常贴近使用的教材
Trac使用手册 Trac是一个为软件开发项目需要而集成了Wiki和问题跟踪管理系统的应用平台,是一个开源软件应用。Trac以简单的方式建立了一个软件项目管理的Web应用,以帮助开发人员更好地写出高质量的软件;Trac应用...