数据文件头块保留大小、ROWID、数据文件最大大小等数据库限制的说明
学习自EYGLE循序渐进ORACLE及官方文档。
本地管理表空间中设置不同大小的db_block_size时数据文件头保留空间对应如下:
db_block_size=2KB,文件头保留32个数据块,即64KB。
db_block_size=4KB,文件头保留16个数据块,即64KB。
db_block_size=8KB,文件头保留8个数据块,即64KB。
db_block_size=16KB,文件头保留4个数据块,即64KB。
db_block_size=32KB,文件头保留4个数据块,即128KB。
默认是db_block_size=8KB,此时 ORACLE数据文件头的8个数据块作用是:
数据块1和2记录数据文件头信息。3-8用于记录extent-区间的位图信息 --11G中要保留到128个块???
################################
Oracle数据库中的数据文件的最大数量是有限的(通常为64K文件)。--来自官方文档
表空间支持的最大数据文件大小的算法:
分两种情况:smallfile tablespace与bigfile tablespace
smallfile tablespace的ROWID
记录存储所在数据文件(file#),所属数据库对象,所在数据块中的行号,这些属性合并起来构成了ORACLE ROWID.
ORACLE ROWID分为物理ROWID,逻辑ROWID。
索引组织表(IOTs)使用逻辑ROWID,其它类型的表使用物理ROWID。
ROWID可以惟一标识一条记录,所以索引中存储了ROWID的值,通过访问索引,得到ROWID,再定位到记录。
ROWID采用Base64编码,共18位代表80位二进制数,占用10个字节。
每组字符代表不同的含义,18位最大寻址空间“32G”。。
对一条行ID的解析:OOOOOO.FFF.BBBBBB.RRR --其中.是为了方便观看手动增加
OOOOOO: 1-6位:对象id
FFF: 7-9位:文件id
BBBBBB: 10-15位:块id
RRR: 16-18位:行id
对于Base64编码,共18位代表80位二进制数,计算方法是:
32bit obj# + 10bit file# + 22bit block# + 16bit row#
通过ROWID计算数据块的相关信息,详见:http://blog.csdn.net/q947817003/article/details/11490051
根据small file tablespace的ROWID,计算出表空间、数据文件、BOOCK中行最大数如下:
根据ROWID的构成: ---注:2^10这种写法代表2的10次方,等于1024.
每个表空间最大文件数: 2^10 1024 ,去掉全0和全1 通常1022个 ---实验测试出是1023个,见:数据文件个数大于1024时ORACLE数据文件FILE_ID及RELATIVE_FNO的变化示例
每数据文件最大数据块数量:filesize=block_size*2^22 ,也就是4M个ORACLE BLOCK
每个BLOKC中行数是: 2^16 65536,也就是每个BLOCK最多65536条记录
每个数据库最多65536个-64K个数据文件(实验测试出是65534----官方文档上是65533-http://docs.oracle.com/cd/B19306_01/server.102/b14237/limits002.htm#i287915),最多支持64K个表空间,因为每个表空间最少需要包含一个数据文件。引出新问题:如果数据库有大于1024个数据文件,ORACLE如何通过ROWID定位数据文件呢? --详见:数据文件个数大于1024时ORACLE数据文件FILE_ID及RELATIVE_FNO的变化示例
更详细的数据库限制见官方文档:http://docs.oracle.com/cd/B19306_01/server.102/b14237/limits.htm#REFRN004
smallfile tablespace设置不同大小的db_block_size时数据文件允许的最大大小
db_block_size=2KB,2KB*4M=8192M 8G
db_block_size=4KB,4KB*4M=16384M 16G
db_block_size=8KB,8KB*4M=32768M 32G 8*1024*4M=8*4G=32G
db_block_size=16KB,16KB*4M=65536M 64G
db_block_size=32KB,32KB*4M=131072M 128G
#########################################################
BIGFILE表空间的ROWID
因为大文件表空间只能包含一个文件,所以ROWID中不需要file#-文件ID。
大文件表空间的ROWID格式为:
OOOOOO.LLLLLLLLL.RRR
OOOOOO: 1-6位:对象id
LLLLLLLLL: 7-15位:块id
RRR: 16-18位:行id
L代表BLOCK号,代替了小文件表空间中ROWID中的file# + block#的位置.
这样大文件表空间的数据文件支持的BLOCK数量最多是:2bit. 2^32=4G.
bigfile tablespace设置不同大小的db_block_size时数据文件允许的最大大小
db_block_size=2KB,2KB*4G= 8T
db_block_size=4KB,4KB*4G= 16T
db_block_size=8KB,8KB*4G= 32T 8*1024*4G=8*4TB=32TB
db_block_size=16KB,16KB*4G= 64T
db_block_size=32KB,32KB*4G=128TB
本文引用:https://blog.csdn.net/haibusuanyun/article/details/16847005
数据文件头块保留大小、ROWID、数据文件最大大小等数据库限制的说明相关推荐
- 分享:bbed修改数据文件头推进scn与其他数据文件相同
2019独角兽企业重金招聘Python工程师标准>>> 场景简介: 物理copy表空间数据文件,数据库发生完全检查点,删除该表空间下的数据文件,使该表空间数据文件头的scn与其他数据 ...
- 修改oracle的表空间文件scn,分享:bbed修改数据文件头推进scn与其他数据文件相同...
场景简介: 物理copy表空间数据文件,数据库发生完全检查点,删除该表空间下的数据文件,使该表空间数据文件头的scn与其他数据文件不一致. 场景构造: 1.创建测试表空间 SYS@orser> ...
- oracle恢复指定数据文件,Oracle特殊恢复-BBED修改某个数据文件头
Oracle数据文件头中的scn要与控制文件中的scn一致,数据库才可以open,在open过程中我们可以通过bbed来修改某个数据文件头的scn,来欺骗oracle,来open库. 1.环境如下 使 ...
- 使用BBED恢复数据文件头
转载请注明出处:http://blog.csdn.net/guoyjoe/article/details/31018075 @@@@@@@利用BBED模拟损坏5文件1号块(文件头) BBED> ...
- oracle scn与数据恢复,Oracle数据恢复:数据文件头的SCN与时间校验
Oracle数据恢复:数据文件头的SCN与时间校验 SQL> alter database open; alter database open * ERROR at line 1: ORA-01 ...
- oracle 录制响应文件格式_ORACLE 11G 数据文件头格式
11G版本 BBED> print kcvfh struct kcvfh, 860 bytes @0 struct kcvfhbfh, 20 bytes ...
- oracle 文件头格式,ORACLE 11G 数据文件头格式
11G版本 BBED> print kcvfh struct kcvfh, 860 bytes @0 struct kcvfhbfh, 20 bytes @0 ub1 type_kcbh @0 ...
- Oracle数据文件scn不一致,控制文件与数据文件头SCN不一致导致数据库无法启动故障处理...
环境说明 OS操作系统:WINDOWS 2012 64位 数据库版 本:ORACLE 11.2.0.1 故障问题描述 客户反映数据库无法启动,报ORA-01589:要打开数据库必须使用RESETLOG ...
- oracle 查询重复数据并且删除, 只保留一条数据
数据库操作中,经常会因为导数据造成数据重复,需要进行数据清理,去掉冗余的数据,只保留正确的数据 一:重复数据根据单个字段进行判断 1.首先,查询表中多余的数据,由关键字段(name)来查询. sele ...
最新文章
- JavaScript语言标准
- java将输出结果写入csv文件_如何在Java中将数据写入.csv文件?
- mysql 源码安装 5.6.21_Mysql5.6.21源码安装
- LaunchScreen.xib 设置启动图
- 10玩rust_C++工程师的Rust迁移之路(5)- 继承与组合 - 下
- 手把手教你用ECharts画折线图
- 09_期望极大法EM2_统计学习方法
- MyEclipse激活步骤
- 我关注的那些程序员大佬
- magento 客户表相关_第9章 相关性分析
- 用库仑计方法来计量电池容量
- java实现socket网络编程
- 激光条纹中心线提取算法总结和复现
- Java Excel导出动态自定义单元格样式
- 开源课设-宠物诊所管理系统
- POJ 1265 Area(Pick定理)
- 技巧 | 使用基础绘图系统绘制「森林图」
- 南京湖南路学计算机哪家好,南京“最好吃餐厅排行榜”,去过8个,你就是超级美食达人......
- java基于Springboot+vue的校园二手闲置商品交易平台系统 element
- 使用Python下载电影
热门文章
- Fire Emblem Echoes oj
- Mac端wps耗电快的原因及解决方式
- IE-LAB网络实验室:5G和WIFI6,还傻傻的分不清吗?(3)
- MATLAB 绘制三维坐标系下的矩形框
- Vue----单文件组件
- 全球区块链第22周看点 | b1账号成RAM首富,EOS神秘新产品即将发布
- 配置webpack中externals来减少打包后vendor.js的体积
- 读《张爱玲:她从海上来》有感
- 2246xt u盘开卡详细教程_炫龙x8 plus如何使用bios设置u盘启动【图文教程】
- iOS14 Widget开发踩坑(五)定位与地图的使用