Oracle的体系结构
Oracle体系结构概述
完整的Oracle数据库系统通常由两部分组成: 实例+数据库
实例:一组Oracle后台进程/线程以及在服务器分配的共享内存区
数据库:一系列物理文件的集合(数据文件、控制文件、联机日志、参数文件等)
实例和数据库之间的关系:
- 数据库可以由多个实例装载和打开
- 实例可以在任何时间装载和打开一个数据库
- 一个实例在其生存期最多只能卸载和打开一个数据库
逻辑存储结构
组成
逻辑存储单元从小到大依次为:数据块------>盘区------>段------>表空间
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-uJIzQvrr-1632584153991)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20210622185608391.png)]
数据块:管理存储空间的最小单元,也是执行数据库输入输出操作时的最小单元
盘区:存储分配的最小单元
段:独立的逻辑存储结构
表空间:最大的逻辑存储结构
-
盘区是由一系列物理上连续存放的数据库所构成的存储结构,由一个或多个数据块组成一个盘区,而一个或多个盘区组成一个段。当一个段中所有空间都被使用完后,系统将自动为该段分配一个新的盘区。
-
对于具有独立存储结构的对象,他的数据全部存储在保存他的段中。一个段只属于一个特点的数据库对象,每当创建一个具有独立段的数据库对象时,Oracle将为他创建一个段,不同类型的数据库对象拥有不同类型的段。
-
一个表空间由一个或多个数据文件组成,一个数据文件只可以属于一个表空间,这是逻辑与物理的统一。
-
存储空间在物理上表现为数据文件,在逻辑上表现为表空间。表空间的大小等于构成该表空间的所有数据文件大小之和。数据库的大小等于所有表空间的大小之和。
物理存储结构
数据库物理存储结构主要包括以下几类物理文件:
①数据文件(data file)(*.dbf)
②控制文件(control file)(*.ctl)
③重做日志文件(log file)(*.log)
④其他文件
数据文件
系统数据文件:存放系统表和数据字典。
撤销段文件:存放撤销段数据文件,在数据修改中存储修改之前的记录。
用户数据文件:存放用户数据。
控制文件
-
数据库控制文件是一个很小的二进制文件,其中包含了关于数据库物理结构的重要信息。
-
控制文件对于数据库的成功启动和正常运行是至关重要的。在加载数据库时,实例必须首先找到数据库的控制文件。如果控制文件正常,实例才能加载并打开数据库。但是如果控制文件中记录了错误的信息,或者实例无法找到一个可用的控制文件,数据库将无法加载,当然也法打开。
重做日志文件
- 记录数据库中所有修改信息的文件
- 以循环方式使用
逻辑存储与物理存储之间的关系
实例的内存结构
实例的2个主要的内存结构
- 系统全局区(SGA):位于系统的共享内存段中,所以SGA中的数据可以被所有服务器和后台进程共享
- 程序全局区(PGA):保存的某个服务进程私有的数据和控制信息,是非共享内存。每个服务进程都有自己的PGA区。
实例的进程结构
Oracle进程分为三类:
①用户进程
②服务器进程
③后台进程
Oracle 的实例所必需的后台进程:
- DBWR(数据写进程):将缓存区的数据写入到数据文件
- LGWR(日志写进程):将重做日志缓冲区的信息写入到磁盘日志文件组
- ……
数据字典
数据字典是由一系列对于用户而言是只读的基础表和视图组成,它保存了关于数据库本身以及其中存储的所有对象的基本信息。
数据字典的分类
数据字典有静态和动态之分
-
静态数据字典:在用户访问数据字典时不会发送改变,主要由表格和视图组成,数据字典中的表不能直接被访问,但可以访问数据字典中的视图。
- USER视图:该视图存储了当前用户所拥有的对象的信息(即所有在该用户模式下的对象)
- ALL视图:该视图存储了当前用户能够访问的对象信息(与user _ *相比,all _ * 并不需要拥有该对象,只需要具有访问该对象的权限即可)
- DBA视图:该视图存储了数据库中所有对象的信息(前提是当前用户具有访问这些数据库的权限,一般来说必须具有管理员权限)
-
动态数据字典:依赖数据库运行,不断进行更新。