关于数据文件的文件头2-P2
文章目录
1 疑问点
这里引用p2处的一段话:
事实上,每个文件的前128个块,都是文件头,被Oracle留用了。在Oracle 10g中是0至8号块被Oracle留用。而从Oracle 11GR2开始,一下就留用了128个块,这是大手笔,不是吗?
这一部分文件头又分两部分,其实0号、1号块是真正的文件头,2 ~ 127号块是位图块。而在Oracle10g中,2 ~ 8号块则是位图块。
自己通过实验可以发现,在11.2.0.4.0版本中,这里的说法其实有一些问题的,大师也会犯错。
2 实验验证
2.1 实验环境
11.2.0.4.0
2.2 创建统一区大小管理表空间
2.2.1 统一区大小40k
我们知道,区大小的管理有系统管理(默认)和统一区大小管理(这里使用)两种模式。
SYS@zkm1> create tablespace tbs1 datafile '+arch' autoextend on uniform size 40k;
Tablespace created.
SYS@zkm1> create user zkm identified by oracle default tablespace tbs1;
User created.
SYS@zkm1> grant dba to zkm;
Grant succeeded.
SYS@zkm1> create table zkm.test as select rownum id from dual where rownum=1; -- 避免延迟段创建的影响
Table created.
SYS@zkm1> select header_file,header_block from dba_segments where segment_name='TEST' and owner='ZKM';
HEADER_FILE HEADER_BLOCK
----------- ------------
6 10
SYS@zkm1> select EXTENT_ID,FILE_ID,BLOCK_ID,BYTES,BLOCKS from dba_extents where owner='ZKM' and SEGMENT_NAME='TEST';
EXTENT_ID FILE_ID BLOCK_ID BYTES BLOCKS
---------- ---------- ---------- ---------- ----------
0 6 8 40960 5
可以得到如下信息(BMB信息dump可验证):
- 段头块是6号文件第10个块,也是一个L3块
- 区0是从第8个块开始,这个块其实是一个L1块
- 第9个块是L2块,11-12这两个块则是可以实际使用的数据块
这里可以看出,这跟VAGE大师的说法(开头处引用)有点出入。应该是0~7这8个块是文件头才对(和10g类似)。
继续。
2.2.2 统一区大小56k
SYS@zkm1> drop tablespace tbs1 including contents and datafiles;
Tablespace dropped.
SYS@zkm1> create tablespace tbs1 datafile '+arch' size 1g autoextend on uniform size 56k;
Tablespace created.
SYS@zkm1> create table zkm.test as select rownum id from dual where rownum=1;
Table created.
SYS@zkm1> select header_file,header_block from dba_segments where segment_name='TEST' and owner='ZKM';
HEADER_FILE HEADER_BLOCK
----------- ------------
6 10
SYS@zkm1>
SYS@zkm1> select EXTENT_ID,FILE_ID,BLOCK_ID,BYTES,BLOCKS from dba_extents where owner='ZKM' and SEGMENT_NAME='TEST';
EXTENT_ID FILE_ID BLOCK_ID BYTES BLOCKS
---------- ---------- ---------- ---------- ----------
0 6 8 57344 7
继续。
2.2.3 统一区大小64k
相同的执行语句。
SYS@zkm1> drop tablespace tbs1 including contents and datafiles;
Tablespace dropped.
SYS@zkm1> create tablespace tbs1 datafile '+arch' autoextend on uniform size 64k;
Tablespace created.
SYS@zkm1> create table zkm.test as select rownum id from dual where rownum=1;
Table created.
SYS@zkm1> select header_file,header_block from dba_segments where segment_name='TEST' and owner='ZKM';
HEADER_FILE HEADER_BLOCK
----------- ------------
6 130
SYS@zkm1> select EXTENT_ID,FILE_ID,BLOCK_ID,BYTES,BLOCKS from dba_extents where owner='ZKM' and SEGMENT_NAME='TEST';
EXTENT_ID FILE_ID BLOCK_ID BYTES BLOCKS
---------- ---------- ---------- ---------- ----------
0 6 128 65536 8
创建64k统一区大小的话,似乎是符合开头引用那段话的内容的,区从128号块开始,0~127共128个块是文件头。
事实上,系统管理区大小的表空间,默认段开始的16个区,都是8个块,块大小8k,刚好一个区64k。
2.2.4 统一区大小64M
SYS@zkm1> drop tablespace tbs1 including contents and datafiles;
Tablespace dropped.
SYS@zkm1> create tablespace tbs1 datafile '+arch' autoextend on uniform size 64M;
Tablespace created.
SYS@zkm1> create table zkm.test as select rownum id from dual where rownum=1;
Table created.
SYS@zkm1> select header_file,header_block from dba_segments where segment_name='TEST' and owner='ZKM';
HEADER_FILE HEADER_BLOCK
----------- ------------
6 161
SYS@zkm1> select EXTENT_ID,FILE_ID,BLOCK_ID,BYTES,BLOCKS from dba_extents where owner='ZKM' and SEGMENT_NAME='TEST';
EXTENT_ID FILE_ID BLOCK_ID BYTES BLOCKS
---------- ---------- ---------- ---------- ----------
0 6 128 67108864 8192
事实上,分别设置统一区大小管理为64M,128M,256M,1024M,发现区都是从128号块开始了,符合这种说法了。
只不过,随着区越来越大,L3(段头块)的编号越大。
那么,基于11.2.0.4.0实验可得到的结论:在区大小超过64k之后,大师的说法是对的,小于64k的情况下,还是遵循10g的模式。
关于数据文件的文件头2-P2的更多相关文章
- 关于数据文件的文件头1-P2
文章目录 1 疑问点 2 问题模拟 2.1 dump 0,1块 2.2 查看trc文件 2.3 如何查看 1 疑问点 这里引用p2处的一段话: 事实上,每个文件的前128个块,都是文件头,被Oracl ...
- matlab中读取txt数据文件(txt文本文档)
matlab中读取txt数据文件(txt文本文档) 根据txt文档不同种类介绍不同的读取数据方法 一.纯数据文件(没有字母和中文,纯数字) 对于这种txt文档,从matalb中读取就简单多了 例如te ...
- 常用文件的文件头(附JAVA测试类)
1. MIDI (mid),文件头:4D546864 2. JPEG (jpg),文件头:FFD8FF 3. PNG (png),文件头:89504E47 4. GIF (gif),文件头:47494 ...
- 考古备份:a.out文件ELF文件头中魔数的由来
来源: <程序员的自我修养>3.4节. 补充: http://wiki.osdev.org/ELF http://www.linux-mag.com/id/116/ http://en.w ...
- pcap文件的文件头的link type
http://www.tcpdump.org/linktypes.html Link-layer header type values LINKTYPE_ name LINKTYPE_ value C ...
- CTF中常见文件的文件头(十六进制)
jpg/jpeg FF D8 FF E0 或 FF D8 FF E1 或 FF D8 FF E8 png 89 50 4E 47 bmp 42 4D 36 5D gif 47 49 46 38 zip ...
- 【CTF杂项】常见文件文件头文件尾格式总结及各类文件头
文件头文件尾总结 JPEG (jpg), 文件头:FFD8FF 文件尾:FF D9PNG (png), 文件头:89504E47 文件尾:AE 42 60 82GIF (gif), 文件头:47494 ...
- 在py文件中设置文件头
在写python文件的时候有时需要记录作者.创建时间等时间,因此可以给python文件设置文件头,这里以PyCharm为例介绍设置步骤: 1. 打开PyCharm,依次点击Setting-----Ed ...
- 05 使用bbed跳过归档恢复数据文件
5 使用BBED跳过归档 在归档模式下,缺失了一部分的归档日志文件,对数据文件进行恢复 1 开启归档 --shutdown immediate --startup mount --alter data ...
随机推荐
- Java实现 蓝桥杯VIP 算法训练 集合运算
问题描述 给出两个整数集合A.B,求出他们的交集.并集以及B在A中的余集. 输入格式 第一行为一个整数n,表示集合A中的元素个数. 第二行有n个互不相同的用空格隔开的整数,表示集合A中的元素. 第三行 ...
- Java实现 蓝桥杯VIP 算法训练 采油区域
算法训练 采油区域 时间限制:2.0s 内存限制:512.0MB 提交此题 查看参考代码 采油区域 Siruseri政府决定将石油资源丰富的Navalur省的土地拍卖给私人承包商以建立油井.被拍卖的整 ...
- 痞子衡嵌入式:降低刷新率是定位LCD花屏显示问题的第一大法(i.MXRT1170, 1280x480 LVDS)
大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家分享的是i.MXRT1170上LCD花屏显示问题的分析解决经验. 痞子衡最近这段时间在参与一个基于i.MXRT1170的大项目(先保个密),需要 ...
- Go语言json编码驼峰转下划线、下划线转驼峰
目录 一.需求 二.实现 三.使用 JsonSnakeCase统一转下划线json JsonSnakeCase统一转驼峰json 一.需求 golang默认的结构体json转码出来,都是大写驼峰的,并 ...
- 实验四 Linux系统搭建C语言编程环境
项目 内容 这个作业属于那个课程 <班级课程的主页链接> 这个作业的要求在哪里 <作业要求链接地址> 学号-姓名 17043220-万文文 作业学习目标 1).Linux系统下 ...
- 关于前端JS走马灯(marquee)总结
方案一: <marquee width="360" scrolldelay="20" scrollamount="2" onclick ...
- Centos7 安装 redis6 的部分问题总结
首先把redis.tar.gz 解压到你想要的路径 检查一下安装环境: yum -y install gcc yum -y install epel-release 执行 make 和 make in ...
- 攻防世界misc新手区前三题
1.this_is_flag 从题目以及题目的描述来看,不难发现实际上题目中所描述的就是flag 2.Pdf 拿到题目附件是pdf文件,观察题目描述,题目说图下面什么都没有,那么十有八九图下面肯定是f ...
- 大数据之Hudi + Kylin的准实时数仓实现
问题导读:1.数据库.数据仓库如何理解?2.数据湖有什么用途?解决什么问题?3.数据仓库的加载链路如何实现?4.Hudi新一代数据湖项目有什么优势? 在近期的 Apache Kylin × Apach ...
- git安装和第一次提交过程
1,新建文件夹test,运行命令 git init 2,找到test的.git文件夹,打开之后找到config文件,在最后边加上一句话 [user] email=your email name=you ...