oracle11体系结构二-存储结构

2023-12-26 15:04

本文主要是介绍oracle11体系结构二-存储结构,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

数据区:

数据区(数据扩展区)由一组连续的oracle数据块所构成的存储结构,一个或多个数据块组成一个数据区,一个或多个数据区组成一个段。当段中所有空间被使用完后,oracle系统将自动为该段分配一个新的数据区。可见数据区是oracle存储分配的最小单位,oracle就以数据区为单位进行存储控件的扩展。

用数据区的目的是用来保存特定的数据类型的数据。数据区是表中数据增长的基本单位,在oracle数据库中,分配存储空间就是以数据区为单位的。一个oracle对象包含至少一个数据区,设置一个表或索引的存储参数包含设置它的数据区大小。

用于存储表,索引或簇等占用空间的数据对象。段是为特定的数据对象(表,索引,回滚等)分配的一系列数据区。

段的类型:

数据段:保存的是表中的数据记录。当表的数据记录逐渐增加时,数据段增大的过程是向其添加新的数据区来实现的。

索引段:创建索引,自动创建索引段。包含用于提高系统性能的索引。

回滚段:保存回滚条目,oracle将修改前的旧值保存在回滚条目中。利用这些信息,可以撤销未提交的操作,以便为数据库提供读入一致性和回滚未提交的事物,即用来回滚事物的数据空间。当一个事物开始处理时,系统为之分配回滚段,回滚段可以动态创建和撤销。oracle有个默认的回滚段,其管理方式既可以是自动的,也可以是手工的。

临时段:当执行创建索引,查询等操作时候,oracle可能会使用一些临时存储空间,用于暂时性的保存解析过的查询语句以及在排序过程中产生的临时数据。oracle系统将在专门用于存储临时数据的表空间中为操作分配临时段。

表空间:

使用表空间将相关的逻辑结构(数据区,段等)组合在一起。数据库最大的逻辑划分区域,用来存放数据表,索引,回滚段等数据对象,任何数据对象在创建时都必须被指定存储在某个表空间中。表空间(逻辑结构)与数据文件(物理结构)相对应,一个表空间由一个或多个数据文件组成,一个数据文件只属于一个表空间。每个数据库至少有一个表空间(即SYSTEM表空间),表空间的大小等于所有从属它的数据文件大小的总和。

表空间中创建数据对象的两种情况:
1.只包含一个数据文件,所有的对象都存储在这个数据文件中

2.包含多个数据文件,可将存储对象存储在该表空间的任意一个数据文件中,也可以将同一个数据对象中的数据分布在表空间的多个数据文件中。

创建数据库时,会默认创建多个默认表空间,这些表空间除了用于管理用户数据的表空间之外,还包括用于管理oracle系统内部数据的表空间。

1.SYSTEM表空间:系统表空间,用于存放系统内部表和数据字典的数据。

2.SYSAUX 表空间:充当系统表空间的辅助表空间,降低系统表空间负荷,存储除数据字典以外的其他数据对象。一般不存储用户的数据,由oracle系统内部自动维护。

3.UNDO表空间:撤销表空间,用于存储撤销信息的表空间。当用户对数据表进行修改操作时,oracle系统自动使用撤销表空间来临时存放修改之前的数据,当所做的修改操作完成并执行提交命令后,oracle根据系统设置的保留时间长度来决定何时释放掉撤销表空间的部分空间。一般创建oracle实例后,系统自动创建名字为UNDOTBS1的撤销表空间,对应的数据文件UNDOTBS01.DBF

4.USERS表空间  :用户表空间,可以在这个表空间创建各种数据对象,包括表,索引,用户等数据对象。系统的样例用户SCOTT 对象就存放在USERS表空间中。

用户可根据系统的实际情况及其存放的是对象类型创建多个自定义的表空间。

物理存储结构:

由多种物理文件组成:数据文件,控制文件,重做日志文件,归档日志文件,参数文件,口令文件和警告日志文件等。

数据文件:读数据时候,将数据文件的数据存储在内存的高速数据缓冲区,如果用户读取的数据不在数据缓冲区中,则从相应的数据文件中读取并存储在缓冲区中。当修改和插入数据时,不会立即写入到数据文件中,而是保存在数据缓冲区中,由oracle的后台进程DBWR决定如何将其写入相应的数据文件。这种方式减少了磁盘I/O操作,提高系统的相应性能。

控制文件:控制文件是一个二进制文件,记录了数据库的物理结构,包含数据库名,数据文件与日志文件的名字和位置,数据库建立日期等信息。控制文件所存放的路径由服务器参数文件spfileorcl.ora的control_files参数值来指定。控制文件很重要,实例启动时必须要访问控制文件,只有控制文件正常,实例才能打开数据库。如果控制文件有错误或者找不到可用的控制文件,则实例无法正常启动。

日志文件:包括重做日志文件和归档日志文件(ARCH)

重做日志文件:系统运行产生的日志信息,首先被临时存放在系统全局区的重做日志缓冲区,当发出commit命令时,LGWR进程将缓冲区信息读取出来,写入到日志文件组序号较小的文件里,一个日志组写满后接着另一个日志组,所有的日志文件都使用过一遍后他将再次转向第一个日志组重新覆写。

归档日志文件:

如果开启归档模式, 则在转向第一个日志文件覆写之前,将即将覆盖的日志文件写入到归档日志文件中区,这个过程称为归档过程。

归档过程中,日志写入进程需要等待归档进程结束后才能开始覆写日志文件,会导致延迟了系统相应时间,所以,默认情况下不采用归档模式运行。

服务器参数文件:SPFILE是二进制文件,记录了oracle数据库的基本参数信息(如数据库名,控制文件所在路径,日志缓冲大小等)

辅助文件:密码文件,警告文件和跟踪文件

这篇关于oracle11体系结构二-存储结构的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/539866

相关文章

Python实现对阿里云OSS对象存储的操作详解

《Python实现对阿里云OSS对象存储的操作详解》这篇文章主要为大家详细介绍了Python实现对阿里云OSS对象存储的操作相关知识,包括连接,上传,下载,列举等功能,感兴趣的小伙伴可以了解下... 目录一、直接使用代码二、详细使用1. 环境准备2. 初始化配置3. bucket配置创建4. 文件上传到os

Java中调用数据库存储过程的示例代码

《Java中调用数据库存储过程的示例代码》本文介绍Java通过JDBC调用数据库存储过程的方法,涵盖参数类型、执行步骤及数据库差异,需注意异常处理与资源管理,以优化性能并实现复杂业务逻辑,感兴趣的朋友... 目录一、存储过程概述二、Java调用存储过程的基本javascript步骤三、Java调用存储过程示

MySQL之InnoDB存储引擎中的索引用法及说明

《MySQL之InnoDB存储引擎中的索引用法及说明》:本文主要介绍MySQL之InnoDB存储引擎中的索引用法及说明,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐... 目录1、背景2、准备3、正篇【1】存储用户记录的数据页【2】存储目录项记录的数据页【3】聚簇索引【4】二

MySQL之InnoDB存储页的独立表空间解读

《MySQL之InnoDB存储页的独立表空间解读》:本文主要介绍MySQL之InnoDB存储页的独立表空间,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1、背景2、独立表空间【1】表空间大小【2】区【3】组【4】段【5】区的类型【6】XDES Entry区结构【

SQLite3 在嵌入式C环境中存储音频/视频文件的最优方案

《SQLite3在嵌入式C环境中存储音频/视频文件的最优方案》本文探讨了SQLite3在嵌入式C环境中存储音视频文件的优化方案,推荐采用文件路径存储结合元数据管理,兼顾效率与资源限制,小文件可使用B... 目录SQLite3 在嵌入式C环境中存储音频/视频文件的专业方案一、存储策略选择1. 直接存储 vs

MySQL中的索引结构和分类实战案例详解

《MySQL中的索引结构和分类实战案例详解》本文详解MySQL索引结构与分类,涵盖B树、B+树、哈希及全文索引,分析其原理与优劣势,并结合实战案例探讨创建、管理及优化技巧,助力提升查询性能,感兴趣的朋... 目录一、索引概述1.1 索引的定义与作用1.2 索引的基本原理二、索引结构详解2.1 B树索引2.2

如何使用Maven创建web目录结构

《如何使用Maven创建web目录结构》:本文主要介绍如何使用Maven创建web目录结构的问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录创建web工程第一步第二步第三步第四步第五步第六步第七步总结创建web工程第一步js通过Maven骨架创pytho

Python循环结构全面解析

《Python循环结构全面解析》循环中的代码会执行特定的次数,或者是执行到特定条件成立时结束循环,或者是针对某一集合中的所有项目都执行一次,这篇文章给大家介绍Python循环结构解析,感兴趣的朋友跟随... 目录for-in循环while循环循环控制语句break语句continue语句else子句嵌套的循

MySQL存储过程之循环遍历查询的结果集详解

《MySQL存储过程之循环遍历查询的结果集详解》:本文主要介绍MySQL存储过程之循环遍历查询的结果集,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录前言1. 表结构2. 存储过程3. 关于存储过程的SQL补充总结前言近来碰到这样一个问题:在生产上导入的数据发现

MySQL 存储引擎 MyISAM详解(最新推荐)

《MySQL存储引擎MyISAM详解(最新推荐)》使用MyISAM存储引擎的表占用空间很小,但是由于使用表级锁定,所以限制了读/写操作的性能,通常用于中小型的Web应用和数据仓库配置中的只读或主要... 目录mysql 5.5 之前默认的存储引擎️‍一、MyISAM 存储引擎的特性️‍二、MyISAM 的主