Oracle数据库存储结构--逻辑存储结构
数据库存储结构:分为物理存储结构和逻辑存储结构。
物理存储结构:操作系统层面如何组织和管理数据
逻辑存储结构: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
相关文章:
Oracle数据库存储结构--逻辑存储结构
数据库存储结构:分为物理存储结构和逻辑存储结构。 物理存储结构:操作系统层面如何组织和管理数据 逻辑存储结构:Oracle数据库内部数据组织和管理数据,数据库管理系统层面如何组织和管理数据 Oracle逻辑存储结构 数据库的逻…...
kali之nmap
kali之nmap Nmap(Network Mapper)是 Kali Linux 中最著名的网络扫描工具之一,广泛用于网络发现、端口扫描、服务识别、操作系统检测等任务。它是一个功能强大且灵活的开源工具,适用于渗透测试、网络管理和安全审计。 1. Nmap 的主…...
Kubernetes学习笔记-移除Nacos迁移至K8s
项目服务的配置管理和服务注册发现由原先的Nacos全面迁移到Kubernetes上。 一、移除Nacos 移除Nacos组件依赖。 <dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId> <…...
简单创建一个Django项目并配置neo4j数据库
创建项目,项目的文件夹就是项目的名称 创建项目的基本框架 安装djangorestframework 单击运行 查看浏览器运行效果: 运行效果如下: 创建应用(假如说是创建一个名为myapp的应用): python manage.py startapp myapp创建之后的…...
java实现智能家居控制系统——入门版
文章目录 一、需求二、业务分析三、具体实现创建一个功能接口,实现设备的开关创建一个家电类,作为功能接口的实现类,定义名字和状态分别创建电视机、洗衣机、电灯的类,继承家电类Tv类WashMachine类Lamp类 定义智能控制系统类&…...
k8s基础架构介绍
k8s基础架构介绍 k8s 是对容器进行编排的一种工具。通过k8s可以实现对容器的编排、部署、更新等 学习k8s之前,先了解相关的一些使用和配置k8s的一些工具。 k8s的常用工具 在 kubernetes 中,主要有三个日常使用的工具,这些工具使用 kube 前…...
VSCode C/C++ 开发环境完整配置及常见问题(自用)
这里主要记录了一些与配置相关的内容。由于网上教程众多,部分解决方法并不能完全契合我遇到的问题,因此我选择以自己偏好的方式,对 VSCode 进行完整的配置,并记录在使用过程中遇到的问题及解决方案。后续内容也会持续更新和完善。…...
QGraphicsDropShadowEffect 的效果不能同时被多个控件使用
问题的原因是 QGraphicsDropShadowEffect 不能同时被多个控件共享。每个 QGraphicsDropShadowEffect 实例只能绑定到一个控件上。如果你将同一个 taskbarShadow 同时设置给 ui->filemanager_memeryArea 和 ui->workspaceWidget,只有最后一个设置会生效。 解决…...
实用小工具——快速获取数据库时间写法
最近我遇到了一个比较棘手的问题:在工作中,各个项目所使用的数据库类型各不相同。这导致我习惯性地使用Oracle的SQL语句进行编写,但每次完成后都会遇到报错,最终才意识到项目的数据库并非Oracle。为了避免这种情况,我需…...
回文字串(信息学奥赛一本通-2044)
【题目描述】 输入一串字符,字符个数不超过100,且以“.”结束。 判断它们是否构成回文。 【输入】 一行字符串。 【输出】 是否为回文串。是输出“Yes”,否输出“No。” 【输入样例】 abccb 【输出样例】 No 【题解代码】 #include<bits/stdc.h> using names…...
用Maven创建只有POM文件的项目
使用 mvn 创建一个仅包含 pom.xml 文件的父项目,可以借助 maven-archetype-quickstart 原型,然后移除不必要的文件,或者直接通过命令生成最简的 pom.xml 文件。以下是具体操作步骤: 一、方法一:使用原型创建后清理 1…...
基于ssm的宠物医院信息管理系统(全套)
一、系统架构 前端:html | layui | vue | element-ui 后端:spring | springmvc | mybatis 环境:jdk1.8 | mysql | maven | tomcat | idea | nodejs 二、代码及数据库 三、功能介绍 01. web端-首页1 02. web端-首页…...
从 YOLOv1 到 YOLOv2:目标检测的进化之路
引言 你有没有想过,当你用手机拍一张照片,里面的人、车、狗是怎么被自动识别出来的?这背后靠的就是目标检测技术。目标检测是计算机视觉中的一个重要领域,它不仅要回答“图片里有什么”,还要告诉你“这些东西在哪里”…...
RTDETR融合[CVPR205]ARConv中的自适应矩阵卷积
RT-DETR使用教程: RT-DETR使用教程 RT-DETR改进汇总贴:RT-DETR更新汇总贴 《Adaptive Rectangular Convolution for Remote Sensing Pansharpening》 一、 模块介绍 论文链接:https://arxiv.org/pdf/2503.00467 代码链接:https:/…...
【linux】使用 crontab 新增定时任务
目录 1. 打开 crontab 编辑器2. 添加定时任务3. 保存并退出4. 确认定时任务 1. 打开 crontab 编辑器 1.在终端中输入以下命令: crontab -e2. 添加定时任务 1.在打开的 crontab 文件中,添加你的定时任务。2.假设我们希望每天的 5 点 30 分执行一个脚本…...
项目-个人博客测试报告
目录 一、项目背景 二、项目功能 三、测试计划 (1)功能测试 (2)自动化测试 (3)性能测试 一、项目背景 1、个人博客系统是一个操作简单的基于Spring前后端分离的项目,同时使用MySQL数据库来进…...
软考计算机知识-流水线
计算机流水线类似工业生产过程的流水线,在同一时间,m个部件进行不同的操作,完成对不同对象的处理。 理解重叠:让不同的指令在时间上重叠地解释。在解释第k条指令的操作完成之前,就可以开始解释第k1条指令。 题1&#…...
Linux驱动开发实战(五):Qt应用程序点RGB灯(保姆级快速入门!)
Linux驱动开发实战(五):Qt应用程序点RGB灯(保姆级快速入门!) 文章目录 Linux驱动开发实战(五):Qt应用程序点RGB灯(保姆级快速入门!)前…...
前端登录鉴权全解析:主流方案对比与实现指南
文章目录 一、常见登录鉴权方式概览1.1 主流方案对比1.2 技术特性对比 二、Session/Cookie方案2.1 实现原理2.2 代码实现2.3 优缺点分析 三、JWT方案3.1 实现原理3.2 代码实现3.3 优缺点分析 四、OAuth方案4.1 实现原理4.2 代码实现4.3 优缺点分析 五、SSO方案5.1 实现原理5.2 …...
【C++】每日一练(链表的中间结点)
本篇博客给大家带来的是用C语言来解答找中间结点! 🐟🐟文章专栏:每日一练 🚀🚀若有问题评论区下讨论,我会及时回答 ❤❤欢迎大家点赞、收藏、分享! 今日思想:不服输的…...
『大模型笔记』什么是MCP?将AI智能体与数据库和API集成
什么是MCP?将AI智能体与数据库和API集成 文章目录 MCP 由多个组件组成,最重要的有以下三个:MCP 体系结构MCP 的实际应用示例为什么要关注 MCP?官方MCP架构图总结如果你正在构建 AI 智能体,可能听说过 MCP(Model Context Protocol,模型上下文协议)。MCP 是一个开源标准…...
使用Redis如何实现分布式锁?(超卖)
分布式锁概念 在多线程环境下,为了保证数据的线程安全,锁保证同一时刻,只有一个可以访问和更新共享数据。在单机系统我们可以使用 synchronized 锁、Lock 锁保证线程安全。 synchronized 锁是 Java 提供的一种内置锁,在单个 JVM …...
【雅思播客07】I‘m in debt.负债
Hey guys! Welcome to my channel, I’m Mavis. Good morning! 欢迎来到我的频道,我是Mavis老师,早上好呀! Today we’re gonna learn a dialogue about recession, a period of temporary economic decline during which trade and indu…...
实现悬浮按钮拖动,兼容h5和微信小程序
h5用js写,微信小程序用 代码里面没有完全实现吸附边缘的功能,需要吸附边缘的话还得自己再完善下(h5的吸附边缘是可以的,小程序的还有点问题) 主要功能是:图片上写文字的悬浮按钮,文字使用的是…...
JavaScript 模块 vs C# 类:封装逻辑的两种哲学
引言 在现代软件开发中,模块化和面向对象设计是代码组织的核心课题。本文通过对比 JavaScript 模块(ES6 Module)与 C# 类(Class)的实现方式,探讨两种语言在封装逻辑时的不同哲学,并给出实际应用…...
Java面向对象编程进阶:深入理解static、单例模式与继承
在面向对象编程(OOP)中,掌握高级特性是提升代码质量和设计能力的关键。本文基于Java语言,深入探讨static关键字、单例设计模式、继承等核心概念,并结合实际应用场景与深度思考,帮助读者构建系统化的知识体系…...
【6】拓扑排序学习笔记
前言 有向无环图和拓扑排序直接关联到中后期的图论建模思想,是很重要的基础知识。这个如果不彻底弄懂,以后图论会很困难。 有向无环图 正如其名,一个边有向,没有环的图,也叫DAG。 DAG图实际运用:描述含…...
珠算之加减法中出现负数情况
在珠算加减法过程中出现负数情况的处理 如果数字 A 小于 B,要求计算 A-B,此时出现了小数减大数的情况,其结果应该是负数。 在平时,计算 A-B 时,如果发现 A 小于 B,则计算时只要计算 B-A,结果记…...
使用Python在Word中生成多种不同类型的图表
目录 工具与环境配置 在 Word 中创建图表的步骤 在Word中创建柱形图 在Word中创建条形图 在Word中创建折线图 在Word中创建饼图 在Word中创建散点图 在Word中创建气泡图 在 Word 文档中插入图表不仅能更直观地呈现数据,还能提升文档的可读性和专业性。常见的…...
pycharm + anaconda + yolo11(ultralytics) 的视频流实时检测,保存推流简单实现
目录 背景pycharm安装配置代码实现创建本地视频配置 和 推流配置视频帧的处理和检测框绘制主要流程遇到的一些问题 背景 首先这个基于完整安装配置了anaconda和yolo11的环境,如果需要配置开始的话,先看下专栏里另一个文章。 这次的目的是实现拉取视频流…...
