首页 > 数据库 >Oracle 物理存储结构

Oracle 物理存储结构

时间:2023-08-26 18:33:24浏览次数:43  
标签:文件 存储 log 数据文件 数据库 Oracle redo 物理

介绍

RDBMS(关系型数据库)通常具有物理存储结构和逻辑存储结构。采用物理和逻辑结构分离的方式,可以做到管理物理结构而不影响逻辑结构的访问。

Oracle将物理结构又分为数据库和实例。数据库是Oracle数据存储在磁盘存储中的一组文件。这些文件又根据不同的作用划分成了三类,分别是:

  • 数据文件和临时文件
  • 控制文件
  • online redo log文件

实例就是用来管理数据库文件的内存结构,下图显示数据库和实例的关系:

Oracle 物理存储结构_物理结构

数据文件

Oracle将数据存在到数据文件中,并且对于每个数据库,必须至少有一个数据文件。

上面提到数据文件有两种,一种是数据文件,一种为临时文件。这两种文件的作用都是存储数据,不同点就在于,数据文件是存储Oracle产生的数据,这些数据会永久性的保存;而临时文件是用存储那些因为物理内存不足,无法将数据全部在内存中完成操作(HASH、排序、数据集和其它操作),而临时写入到临时文件中。

控制文件

控制文件是一个二进制文件,只和数据库有关联,并且每个数据库中有且仅有一个控制文件。

控制文件中主要包含以下信息:

  • 数据库名和数据库标识符(DBID)
  • 创建数据库的时间戳
  • 数据文件、redo log和归档日志文件的信息
  • 表空间信息
  • RMAN备份信息

说完了控制文件中的内容,再来说说它的用途。它主要用途有两点:

  • 跟踪数据库的物理结构变化情况。
  • 记录数据库未打开时必须可以访问的元数据。

Oracle在打开后,会不断的进行读取和写入控制文件的信息,并且是在数据库打开时必须可以用于写入。

online redo log

Online redo log主要是记录对数据的更改,它是两个或两个以上的预先分配的文件组成。

Oracle数据库会将每个事务写入到redo log buffer中,然后根据某些规则,将其写入到redo log文件中。redo log的内容包括有为提交的事务、undo数据、架构(schema)和对象管理语句。

Oracle将数据库实例的online redo log叫做重做线程(redo thread),除集群RAC环境外,单个实例的重做线程只有一个,而集群环境是每个数据库实例都会有各自的重做线程。如果集群环境仅配置一个重做进程,每个数据库实例都要去访问,可能就会有争用的情况。注意,这里说的是单实例重做线程只有1个,不是redo log的数量。

redo log的结构

redo log文件包含重做记录。重做记录由一组更改向量组成,每个向量描述对数据块的更改。

更改向量这个词可能有点难以理解,举个例子:你执行了一个SQL语句,该语句是对A表的字段B执行一个更新操作,执行后就会在重做记录中记录对表A的数据段中的块、UNDO段中的块和UNDO段中的事务表的更改。

重做记录包括更改的所有相关元数据,包括以下内容:

  • 更改的SCN和时间戳
  • 生成更改的事务的事务ID号
  • 事务提交时的SCN和时间戳(如果已提交的话)
  • 进行更改的操作类型
  • 修改数据段的名称和类型

标签:文件,存储,log,数据文件,数据库,Oracle,redo,物理
From: https://blog.51cto.com/bxbdba/7245745

相关文章

  • MySQL 一行记录是怎么存储的?
    一、数据存在哪个文件可以看到,共有三个文件,这三个文件分别代表着:db.opt,用来存储当前数据库的默认字符集和字符校验规则。t_order.frm,t_order的表结构会保存在这个文件。在MySQL中建立一张表都会生成一个.frm文件,该文件是用来保存每个表的元数据信息的,主要包含表结构定义......
  • 一、MySQL体系结构和存储引擎
    一、MySQL体系结构和存储引擎1.1定义数据库和实例数据库:物理操作系统文件或其他形式文件类型的集合。在MySQL数据库中,数据库文件可以是frm、MYD、MYI、ibd结尾的文件。实例:MySQL数据库由后台线程以及一个共享内存区组成。共享内存可以被运行得后台线程所共享。需要牢记的是,......
  • 二、InnoDB存储引擎
    2.3InnoDB体系架构1)后台线程MasterThread:核心线程,主要负责将缓冲池的数据异步刷新到磁盘,保证数据的一致性,包括脏页的刷新、合并插入缓冲、UNDO页的回收等。IOThread:处理IO请求PurgeThread:事务被提交后,其所使用的undolog可能不再需要,因此需要PurgeThread来回收已经使......
  • openGauss学习笔记-51 openGauss 高级特性-列存储
    openGauss学习笔记-51openGauss高级特性-列存储openGauss支持行列混合存储。行存储是指将表按行存储到硬盘分区上,列存储是指将表按列存储到硬盘分区上。行、列存储模型各有优劣,建议根据实际情况选择。通常openGauss用于OLTP(联机事务处理)场景的数据库,默认使用行存储,仅对执行复杂......
  • 初识CAN总线之物理层
    一、CAN简介CAN:ControllerAreaNetwork,控制局域网络,最早由德国BOSCH(博世)开发,,目前已经是国际标准(ISO11898),是当前应用最广泛的现场总线之一。CAN总线主要用于汽车的检测和控制,目的为适应汽车的“减少线束的数量”、“通过多个网络进行大量数据的高速传输”的需求。BOSCH......
  • ORACLE SELECT INTO 赋值为空,抛出 NO DATA FOUND 异常
    例子:DECLAREORDER_NUMVARCHAR2(20);BEGINSELECTS.ORDER_NUMINTOORDER_NUMFROMSALES_ORDERSWHERES.ID=122344;DBMS_OUTPUT.PUT_LINE('单号:'||ORDER_NUM);END;在查询结果为空的情况下,以上代码会报错:未找到任何数据解决方法:改为SELECTMAX(S.ORDER_NUM)INTO......
  • 通过Maven将文件上传到阿里云对象存储OSS
    首先在阿里云开通对象存储OSS功能(免费的),然后在Bucket列表中创建一个Bucket,地域建议选择华东1(杭州),因为这样后面就不用修改Endpoint,或者你直接记住Endpoint也行,读写仅限为公共读,其他的选项就默认的就行了。然后在右上角的头像初点击AccessKey管理,选择继续使用AccessKey,点击创建Ac......
  • 视频云存储/安防监控视频智能分析网关V3:占道经营功能详解
    违规占道经营者经常会在人流量大、车辆集中的道路两旁摆摊,导致公路交通堵塞,给居民出行的造成不便,而且违规占路密集的地方都是交通事故频频发生的区域。TSINGSEE青犀视频云存储/安防监控视频/AI智能分析网关V3运用视频+AI智能分析技术,实现对城市管理中违规、违法事件实时监控监管、......
  • 视频集中存储/云存储平台EasyCVR国标GB28181协议接入的报文交互数据包分析
    安防视频监控/视频集中存储/云存储/磁盘阵列EasyCVR平台可拓展性强、视频能力灵活、部署轻快,可支持的主流标准协议有国标GB28181、RTSP/Onvif、RTMP等,以及支持厂家私有协议与SDK接入,包括海康Ehome、海大宇等设备的SDK等。视频汇聚融合管理平台EasyCVR既具备传统安防视频监控的能力,......
  • Oracle Linux 8 yum 安装 MySQL 8
    一、安装yum仓库rpm-ivhhttps://dev.mysql.com/get/mysql80-community-release-el8-8.noarch.rpm二、先禁用本地的MySQL模块yummodule-ydisablemysqlMySQL8.0CommunityServer......