database --> tablespaces --> segments --> extents --> blocks (--> os blocks)
tablespace 表空间
一个表空间可以包含一个或多个数据文件,最大1023个,每个数据文件只能属于一个表空间
表空间和数据文件之间的关系是 逻辑结构 和 物理结构 的关系
查看数据文件的视图 dba_data_files
查看临时文件的视图 dba_temp_files
数据文件有一个编号(FILE_ID)这个FILE_ID是绝对编号(操作数据文件的时候即可以使用文件名FILE_NAME也可以使用编号FILE_ID,极个别地方只能使用文件名)
查看表空间的视图 dba_tablespaces
使用数据文件和使用临时文件的差别是产生日志量是不一样的,使用临时文件产生的日志非常少(LOGGING,NOLOGGING)
表空间根据表空间里段的内容或者类型不一样可以分为三类: permanent, temporary, undo
创建表空间 create tablespace test datafile 'C:\ORADATA\TEST\TEST01.DBF' size 10M;
改变数据文件大小 alter database datafile 5 resize 20M;
创建表空间时默认数据文件是不自动扩展的
修改为自动扩展
alter database datafile 5 autoextend on next 1m maxsize 1024m (指定unlimited为不限制);
segment 段
数据库中要求存储的任何对象都被归类为段,段是用来描述对象物理使用的
段创建在指定的表空间上
表定义属于元数据是放在system表空间里的,数据是放在指定的表空间的,如果表空间offline了就会出现表不可查询但是可删除的现象
create table t(id int) tablespace test;
查看对应表空间的段 select * from dba_segments where tablespace_name = 'TEST';
段是由extent组成的
段都有段头,段头记录了段有几个extent组成
HEADER_FILE 段头所在文件号,HEADER_BLOCK 段头所在数据块
extent 区
Oracle扩展空间是以extent为单位的,读取是以block为单位
查看segment对应的extent select * from dba_extents where segment_name = 'T';
每条数据代表一个extent
BLOCK_ID:从第几个块开始 BLOCKS: 由几个块组成
extent是由连续的block组成(逻辑上连续)
block 块
数据库块是数据库内I/O的最小单位
数据库读写数据时总是无法只读取一条记录,而是必须整个数据块
前8个块是Oracle元数据,用户是从第9个块开始使用 (10g)
dba_data_files不一致 dba_data_files详解
转载本文章为转载内容,我们尊重原作者对文章享有的著作权。如有内容错误或侵权问题,欢迎原作者联系我们进行内容更正或删除文章。
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
MySQL 主从 AUTO_INCREMENT 不一致问题分析
本文介绍了MySQL5.7 中常见的replace into 操作造成的主从auto_increment不一致现象,一旦触发了主从切换,业务的正常插入操作会触发主键冲突的报错提示。
MySQL典型案例 replace into auto_increment -
C++打开NC数据得到与真实值不一致结果的解决方法
本文介绍基于C++语言的netCDF库读取.nc格式的栅格文件时,代码读取到的数据与栅格文件的实际数据不一致的解决方法~
C++ netCDF NC数据 栅格文件 数据读取