oracle逻辑层级详解(表空间、段、区、数据块)

文章目录


逻辑结构的层次如下所述:

·oracle数据库至少包含一个表空间。

·表空间包含一个或多个段。(segment)

·段由区组成。(extends)

·区由逻辑块组成。(block)

·块是读写操作的最小单位。

oracle数据库体系结构包括构成数据库的逻辑结构和物理结构。

·物理结构包括构成数据库的控制文件、联机重做日志文件和数据文件。

逻辑结构包括表空间、段、区和数据块。

oracle服务器通过表空间和逻辑存储结构(包括段、区和数据块),能够实现磁盘空间使用的小粒度控制。

表空间:

oracle数据库内的数据存储在表空间内。

oracle数据库可以从逻辑上分组到称为表空间的更小的逻辑空间区。

一个表空间在某一时刻只能属于一个数据库。

每个表空间由一个或多个称为数据文件的操作系统文件组成。

表空间可能包含一个或多个段。

表空间可以在数据库运行时联机。

除了SYSTEM表空间或者有活动还原段的表空间,可将其它表空间置于脱机状态而不会影响数据库运行。

表空间可以在可读写和只读状态之间切换。

数据文件(不是逻辑结构):

·oracle数据库内的每个表空间由一个或者多个称为数据文件的文件组成。这些物理结构与在其上运行oracle服务器的操作系统是一致的。

·一个数据文件只能属于一个表空间。

·通过分配指定数量的磁盘空间加上少量的开销,oracle服务器创建表空间数据文件。

·数据文件创建后,数据库管理员可以更改其大小或者指定数据库文件应随着表空间内对象的增长而动态增长。

段:

·段是在表空间中为特定逻辑存储结构分配的空间。

·表空间可以由一个或多个段组成。

·段无法跨越表空间;但是段可以跨越属于同一表空间的多个数据文件。

·每个段由一个或多个区组成。

区:

按区向段分配空间。

·一个或多个区组成一个段。

当段创建后,它至少由一个区组成。

随着段的增长,需要向该段添加区。

DBA可以手动向段添加区。

·一个区就是一组连续的oracle块。

·区无法跨越数据文件,所以,它必须存在于一个数据文件内。

数据块:

oracle服务器以oracle块或者数据块为单位来管理数据文件中的存储空间。

·oracle数据库内的数据存储在数据块内,数据块为最精细的粒度等级。

·oracle数据块是oracle服务器能够分配、读或写的最小存储单元。

·一个数据块对应一个或多个从现有数据文件中分配的操作系统块。

·每个oracle数据库的标准数据块大小是在创建数据库时由初始化参数DB_BLOCK_SIZE指定的。

·数据块大小应当是操作系统块大小的整数倍以避免比必要的I/O。

·数据块大小最大值取决于操作系统。

相关推荐
星恒随风8 小时前
MySQL 从零入门(五):MySQL 内置函数详解——日期、字符串、数学函数与实战案例
linux·数据库·笔记·sql·mysql
吴名氏.10 小时前
Java转AI Agent教程(第十三周)混合检索与重排
java·数据库·人工智能·ai·ai agent
爱码少年10 小时前
Springboot下如何将CSV文件数据导入H2、Mysql数据库表
数据库·mysql·csv
可乐ea11 小时前
智能体记忆该拆成几层:笔记、记忆表示与注入上下文
服务器·数据库·笔记·ai智能体·提示词工程·上下文工程·记忆系统
阿义有问题12 小时前
MySQL 迁移达梦全流程实战:DTS 七步图解 + 对象名全大写适配(附踩坑清单)
数据库
猫猫不是喵喵.15 小时前
从0到1创建一个微服务项目
java·数据库·微服务·1024程序员节
曲径海盗15 小时前
Try-Except怎么用,3个追问解答在自动化下的应用
java·jvm·oracle
lsc_blog16 小时前
听到优化风声,先准备能由自己掌控的事
数据库·分布式·中间件·职场和发展·重构
墨痕诉清风16 小时前
SSRF漏洞实战记录+OSS桶命令执行+MCP漏洞
linux·服务器·数据库
Ashe81319 小时前
MySQL 慢日志先别急着加索引:三个指标能拦掉大半误判
数据库