Oracle数据库存储结构--逻辑存储结构

devtools/2025/3/15 19:17:30/

数据库存储结构:分为物理存储结构和逻辑存储结构。

物理存储结构:操作系统层面如何组织和管理数据

逻辑存储结构:Oracle数据库内部数据组织和管理数据,数据库管理系统层面如何组织和管理数据


Oracle逻辑存储结构    

数据库的逻辑结构是从逻辑的角度分析数据库的构成,即创建数据库后形成的逻辑概念之间的关系。

逻辑存储结构概述

概念

逻辑存储结构是从逻辑的角度来分析数据库的构成的,是数据库创建后利用逻辑概念来描述Oracle数据库内部数据的组织和管理形式。

在操作系统中,没有数据库逻辑存储结构信息,而只有物理存储结构信息。数据库的逻辑存储结构概念存储在数据库的数据字典中,可以通过数据字典查询逻辑存储结构信息。

逻辑结构单元类型

数据块:BLOCK

区:EXTENT

段:SEGMENT

表空间:TABLESPACE 

数据库逻辑和物理存储对应关系

 

数据库的存储层次关系

 

数据块(BLOCK)

数据块的概念

最小的 I/O单元         

数据块是Oracle用来管理存储空间的最基本单元,也是最小的逻辑存储单元。Oracle数据库在进行输入输出操作时,都是以块为单位进行逻辑读写操作的。

包括一个或者多个OS BLOCK (操作系统数据块)

分为标准块和非标准块

数据库创建时,DB_BLOCK_SIZE参数设置标准块大小8192B。

数据块的大小由初始化参数DB_BLOCK_SIZE确定,在创建数据库之后不可以修改。

块大小的查看:

G:\app\oracle\product\12.2.0\dbhome_1\dbs\init.ora

操作系统路径中Oraclehome下dbs文件夹下初始化参数文件中看到

show parameter db_block_size 

 数据库块结构

块头部包括标题块头、表目录、行目录三部分。

块头包含块的一般属性信息,如块的物理地址、块所属段的类型等;

表目录包含数据块中保存的表的信息;

行目录包含数据块中的行地址等信息。

存储区包括行数据区和空闲区两部分。

行数据区是已经使用的空间,保存数据库的对象数据; 空闲区是尚未使用的存储空间,用于存放新的行或用来更新已存在的行。 

(盘)区

盘区是由一系列连续的数据块构成的逻辑存储单元,是存储空间分配与回收的最小单位。

当创建一个数据库对象时,Oracle为对象分配若干个区,以构成一个段来为对象提供初始的存储空间。当段中已分配的区都写满后,Oracle会为段分配一个新区,以容纳更多的数据。 

段的概述

段是由一个或多个连续或不连续的区组成的逻辑存储单元。

数据库模式对象在逻辑上是以段来占据表空间的大小。

段代表特定数据类型的数据存储结构。

一个对象只拥有一个段,一个段至少包含一个区。

段不再是存储空间的分配单位,而是一个独立的逻辑存储结构。段存于表空间中并且由盘区组成。 

段的类型:

数据段

索引段

临时段

回滚段 

数据段

数据段用来存储表或簇的数据,可以细分为普通表数据段、索引表数据段、分区表数据段及簇数据段四种。

索引段

用来存放索引信息,主要包括ROWID和索引键。 索引段与其相应的表段经常会被同时访问,为了减少硬盘访问的冲突,索引段与表段可以放到处于不同物理位置的表空间中。

临时段

当用户进行排序查询时,如果在指定的内存无法完成排序,Oracle将自动从用户默认的临时表空间中指派临时段进行排序。会话结束,数据将从临时段中自动删除。

回滚段

回滚段用于保存数据库的回滚信息,包含当前未提交事务所修改的数据的原始版本。 一个事务只能使用一个回滚段存放它的回滚信息,但是一个回滚段可以存放多个事务的回滚信息。回滚段可以动态创建和撤销。 

表空间

表空间是在Oracle中用户可以使用的最大的逻辑存储结构,用户在数据库中建立的所有内容都被存储在表空间中。

Oracle数据库在逻辑上可以划分为一系列的逻辑空间,每一个逻辑空间就可以称为一个表空间。

一个数据库由有一个或多个表空间构成,不同表空间用于存放不同应用的数据,表空间大小决定了数据库的大小。

一个表空间对应一个或多个数据文件,数据文件大小决定了表空间的大小。

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

表空间是存储模式对象的容器,一个数据库对象只能存储在一个表空间中(分区表和分区索引除外),但可以存储在该表空间所对应的一个或多个数据文件中。

若表空间只有一个数据文件,则该表空间中所有对象都保存在该文件中;若表空间对应多个数据文件,则表空间中的对象可以分布于不同的数据文件中。 

数据库、表空间、数据文件、数据库对象之间的关系:

 

通过表空间,可以实现对数据库存储的管理:

控制整个数据库占用空间的大小;

控制数据库在磁盘上的分配,提高数据库的I/O性能;

控制用户所占用的存储空间的大小。

表空间的分类

系统表空间

系统表空间——包括SYSTEM和SYSAUX SYSTEM 表空间,主要存储:

数据库的数据字典; PL/SQL程序的源代码和解释代码,包括存储过程、函数、包、触发器等;

数据库对象的定义,如表、视图、序列、同义词等。

SYSAUX表空间

SYSAUX表空间是Oracle 10g新增的辅助系统表空间,主要用于存储数据库组件等信息,以减小SYSTEM表空间的负荷。 在通常情况下,不允许删除、重命名及传输SYSAUX表空间。 

非系统表空间

撤销表空间

专门进行回滚信息的自动管理,由回滚段构成。一个数据库可以有多个撤销表空间,但每个数据库实例只能使用一个。

由UNDO_TABLESPACE参数设置的撤销表空间。  

初始化参数UNDO_MANAGEMENT=AUTO时,系统使用撤销表空间自动进行回滚信息管理。

临时表空间

专门进行临时数据管理的表空间。 在数据库实例运行过程中,执行排序等SQL语句时会产生大量的临时数据,这些临时数据将保存在数据库临时表空间中。 建议为数据库单独定义默认的临时表空间。 

用户表空间

保存用户数据。

大文件表空间与小文件表空间

所谓大文件表空间(Bigfile Tablespace)是指一个表空间只包含一个大数据文件,该文件的最大尺寸为128 TB(数据块大小为32 KB)或只32 TB(数据块大小为8 KB)。

与大文件表空间相对应,系统默认创建的表空间称为小文件表空间(Smallfile Tablespace),如SYSTEM表空间、SYSAUX表空间等。小文件表空间可以包含多达1024个数据文件。小文件表空间的总容量与大文件表空间的容量基本相似。

 表空间操作

创建表空间

例:为ORCL数据库创建一个表空间

SQL> CREATE TABLESPACE ORCLTBS1 DATAFILE                                            'D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\ORCLTBS1_1.DBF'      SIZE 50M;

例:为ORCL数据库的ORCLTBS1表空间添加一个大小为10 MB的新数据文件。

SQL> ALTER TABLESPACE ORCLTBS1 ADD DATAFILE      'D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\ORCLTBS1_2.DBF'      SIZE 10M;

 修改表空间可用性

离线状态的表空间是不能进行数据访问的,所对应的所有数据文件也都处于脱机状态。

一些表空间必须是在线状态:

SYSTEM表空间

存放在线回退信息的撤销表空间

临时表空间

语法 ALTER TABLESPACE … ONLINE|OFFLINE 例:

SQL> ALTER TABLESPACE ORCLTBS1 OFFLINE;

SQL> ALTER TABLESPACE ORCLTBS1 ONLINE;

修改表空间读写性

语法:

ALTER TABLESPACE … READ ONLY|READ WRITE 

SQL> ALTER TABLESPACE ORCLTBS1 READ ONLY;

SQL> ALTER TABLESPACE ORCLTBS1 READ WRITE;

删除表空间

语法 DROP TABLESPACE tablespace_name

说明:

如果表空间非空,应带有子句INCLUDING CONTENTS

若要删除操作系统下的数据文件,应带有子句AND DATAFILES 


http://www.ppmy.cn/devtools/167353.html

相关文章

Python----计算机视觉处理(Opencv:自适应二值化,取均值,加权求和(高斯定理))

一、自适应二值化 与二值化算法相比,自适应二值化更加适合用在明暗分布不均的图片,因为图片的明暗不均,导致图片 上的每一小部分都要使用不同的阈值进行二值化处理,这时候传统的二值化算法就无法满足我们的需求 了,于是…

3.14周报

本周主要是在找双目视觉三维人体姿态估计方向的文章,这篇dual-diffusion,双目三维人体姿态估计的双扩散文章,引起了兴趣,作者从由于摄像机数量的减少,增加了3d重建的不确定性入手,然后使用了扩散模型&#…

torch_geometric 安装

环境监测: import torch print(torch.__version__) # 查看pytorch安装的版本号 print(torch.cuda.is_available()) # 查看cuda是否可用。True为可用,即是gpu版本pytorch print(torch.cuda.get_device_name(0)) # 返回GPU型号 …

全栈网络安全|渗透测试-1

网站四大件 系统 系统是指服务器上运行的操作系统,它是承载网站运行的基础。常见的操作系统包括Linux(如Ubuntu、CentOS)、Windows Server等。操作系统负责管理硬件资源,并为运行在其上的软件提供一个稳定的环境。中间件 中间件是…

【电流源和电压源串联和并联】2022-10-19

缘由关于电流源和电压源串联和并联问题-开放平台-CSDN问答 电流源电流恒定电压不定则1安*1欧1伏特 电压源电压恒定电流不定则2伏特-1伏特1伏特/3欧姆0.333~安培 总电流10.331.33则其他都可以计算了。

The Rust Programming Language 学习 (五)

枚举 枚举(enumerations),也被称作 enums。枚举允许你通过列举可能的 成员(variants) 来定义一个类型。首先,我们会定义并使用一个枚举来展示它是如何连同数据一起编码信息的。接下来,我们会探…

Opencv之掩码实现图片抠图

掩码实现图片抠图 目录 掩码实现图片抠图1 掩码1.1 概念1.2 创建掩码1.3抠图思路 2 代码测试 1 掩码 1.1 概念 掩码(Mask)是一种用于指定图像处理操作区域的工具。掩码通常是一个与图像尺寸相同的二值图像,其中像素值为0表示不处理&#xff…

构建多序列比对的删除矩阵Deletion Matrix

从多序列比对(Multiple Sequence Alignment, MSA)数据中构建删除矩阵(Deletion Matrix)是蛋白质结构预测中的一个重要步骤。删除矩阵记录了每个位置相对于参考序列的缺失(deletion)信息,这些信息对于理解蛋白质的进化关系和结构变化非常关键。以下是从 A3M格式文件 的MS…