ORACLE的存储结构

2023年 12月 29日 27.3k 0

ORACLE的存储结构可以分为物理存储结构和逻辑存储结构两种。

物理存储结构

是指数据在磁盘上的物理存储方式,包括数据文件、操作系统块等。数据文件是实际存储在磁盘上的文件,一个表空间可以由多个数据文件组成,这些数据文件是实际存储在磁盘上的文件,由操作系统的块组成。操作系统块是文件系统I/O的基本单位。

逻辑存储结构

主要描述的是Oracle的内部存储结构,与操作系统平台无关,由Oracle数据库创建和管理。它从大到小的层级结构包括:数据库、表空间、段、区和数据块。

数据库是最高一级的逻辑存储结构,通过表空间oracle就可以将相关的逻辑结构和对象组合在一起,oracle就是由若干个表空间组成。段就包含在表空间中。一个表空间包含多个数据文件,一个数据文件只能属于一个表空间。段是由多个区组成,一个区是由多个块组成。一个表空间包含多个数据文件,多个文件可以在不同的物理存储上。也就是说,表空间是可以跨物理存储的。但是,段下一级对象数据块的存储,是不能指定存储在那个文件里的。所以,要想让数据对象访问IO负载均衡,需要指定不同的数据段。

表空间是最大的逻辑单位,一个数据库可以有多个表空间,一个表空间可以有多个数据文件(一个数据文件只能属于一个表空间)。它主要有以下作用:决定数据库实体的空间分配、设置数据库用户的空间份额、控制数据库部分数据的可用性、分布数据于不同的设备之间以改善性能、备份和恢复数据等。

此外,区是连续的块组成的,不能跨域文件。对于区表空间有两种不同的管理方式:本地的管理方式和数据字典的管理方式。 ORACLE认为这样的方式是最节省空间的。主要分为PCTFREE和PCTUSED free 10%表示只能存入90%的空间 原本如果无法写入则会进行一个行迁移的动作,将整行迁移到另一个块 设定一个pctfree就是一定程度上避免行迁移这样的情况产生 used 40%表示下降到40%后才能插入数据 这是为了防止进行频繁的上升下降 块参数 initrans :初始 maxtrans :最大 查看标准块大小 > show parameter block

存储结构示例

假设有一个名为"exampledb"的数据库,它由两个表空间组成:system表空间和data表空间。

system表空间

该表空间包含控制文件和数据文件。控制文件是存储数据库元数据的文件,如数据库的名称、创建时间等。
数据文件是实际存储数据的地方,由若干个操作系统块组成。

data表空间:

该表空间包含若干个数据文件,每个数据文件由多个操作系统块组成。
这些数据文件存储了各种数据库对象,如表、索引等。

段(Segment):

假设在data表空间中有一个名为"employees"的表,该表由一个段组成。
该段由多个区组成,每个区由多个数据块组成。

区(Extent):

当"employees"表需要更多的存储空间时,Oracle会分配一个新的区给该段。
每个区由连续的数据块组成,用于存储表的数据。

数据块(Block):

数据块是Oracle存储空间分配的最小单位,也是数据库I/O的基本单位。每个数据块包含数据和元数据,如行标识符、记录头信息等。通过上述示例,可以看到Oracle的存储结构是一个层次结构,从数据库到数据块,每一层都有其特定的组织和管理方式。这种结构使得Oracle能够高效地管理存储空间、提供数据访问和保证数据完整性。

相关文章

Oracle如何使用授予和撤销权限的语法和示例
Awesome Project: 探索 MatrixOrigin 云原生分布式数据库
下载丨66页PDF,云和恩墨技术通讯(2024年7月刊)
社区版oceanbase安装
Oracle 导出CSV工具-sqluldr2
ETL数据集成丨快速将MySQL数据迁移至Doris数据库

发布评论