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数据库的基本参数信息(如数据库名,控制文件所在路径,日志缓冲大小等)

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

相关推荐
oradh2 小时前
Oracle 11g单库环境PSU补丁安装
数据库·oracle
七夜zippoe3 小时前
Docker容器化实战:核心概念、镜像制作与多阶段构建全解析
java·jvm·数据库·docker·oracle·容器化
xcLeigh3 小时前
Oracle 替换工程实践深度解析:金仓数据库破解 PL/SQL 兼容与跨交易日数据一致性核心难题
数据库·sql·oracle·数据迁移·金仓·kingbasees
Predestination王瀞潞4 小时前
基于 `SqlSession` 的事务手动管理机制
数据库·oracle·java-ee
Predestination王瀞潞5 小时前
映射文件中的四大核心 CRUD 操作标签(对应数据库的增、删、改、查操作)
数据库·oracle
小Tomkk6 小时前
化繁为简:Access 与 SQL 创新指南(第二篇)
数据库·sql·oracle
青木川崎6 小时前
oracle面试题
数据库·oracle
Albert Tan6 小时前
Oracle 使用DB_Link同步MySQL数据
数据库·mysql·oracle
执笔画情ora6 小时前
PG数据库管理-PostgreSQL 常用命令行元命令汇总
数据库·postgresql·oracle