【体系结构】Oracle 11g体系结构总览

Oracle 服务器是一个具有高性能和高可靠性面向对象关系型数据库管理系统,也是一个高效的SQL 语句执行环境。
Oracle 服务器具备以下的特点:
  • 能够可靠的进行多用户环境下大量数据的处理,允许多用户同时访问相同的数据;
  • 保证数据访问的高性能;
  • 有效防止对数据的非法访问;
  • 对于故障恢复提供高效的解决方案。
一 Oracle 体系结构
Oracle数据库服务器包括一个数据库和至少一个数据库实例(通常简称为实例),由于实例和数据库紧密地连接在一起,所以有时使用Oracle数据库来引用实例和数据库,严格意义上说,Oracle数据库具有以下含义:
  • 数据库:即Database,数据库是位于磁盘上存储数据的一组文件,这些文件可以独立于数据库实例存在;
  • 数据库实例:即Database Instance,实例由称为系统全局区(System Global Area)的共享内存区和后台进程组成,实例可以独立于数据库文件存在。
下图展示数据库和实例,对于每一个连接到实例的用户,应用程序都是由客户端进程运行,每一个客户端进程都与它自己的服务器进程相关联,而服务器进程有自己的私有会话内存,称为程序全局区(Program Global Area)。

二 数据库实例结构
1 Oracle数据库进程
  • 用户进程:连接到Oracle DB的应用程序或工具;
  • 后台进程:为了最大限度提高性能并满足多用户的需要,多进程Oracle DB系统使用一些称为“后台进程”的附加Oracle DB进程。一个Oracle DB实例可以有多个后台进程,在启动Oracle实例时启动;
  • 服务器进程:连接到Oracle实例,在用户建立会话时启动;
2 实例内存进程
Oracle DB创建并使用内存结构来满足多种需要,例如,使用内存来存储正在运行的程序代码、在各用户之间共享的数据以及所连接的每个用户的专用数据区域。一个实例有两个关联的基本内存结构:
  • 系统全局区(SGA):一组共享的内存结构(称为SGA组件),其中包含一个Oracle DB实例的数据和控制信息。SGA由所有服务器进程和后台进程共享,SGA中存储的数据有高速缓存的数据块和共享SQL区域等;
  • 程序全局区(PGA):包含某个服务器进程或后台进程的数据及控制信息的内存区域。PGA是Oracle DB在服务器进程或后台进程启动时创建的非共享内存。服务器进程对PGA的访问是独占式的,每个服务器进程和后台进程都具有自己的PGA。
三 数据库存储结构
关系数据库的一个基本任务是用于存储数据,Oracle数据库的存储结构可以分为物理存储结构和逻辑存储结构。
1 物理存储结构
构成Oracle DB的文件可划分为以下类别:
  • 数据文件:包含数据库的用户或应用程序数据,以及元数据和数据字典;
  • 控制文件:包含与数据库本身相关的数据,即物理数据库结构信息。这些文件对数据库至关重要,没有这些文件,就无法打开数据文件来访问数据库中的数据,控制文件还可以包含与备份相关的元数据;
  • 在线重做日志文件:用于恢复数据库实例,如果数据库服务器崩溃,但未丢失任何数据文件,则实例可使用这些文件中的信息恢复数据库。
下列附加文件对成功运行数据库非常重要:
  • 参数文件:用于定义实例启动时如何对其进行配置;
  • 口令文件:允许sysdba、sysoper和sysasm远程连接到实例并执行管理任务;
  • 备份文件:用于数据库恢复。如果介质故障或用户错误导致原始文件被损坏或删除,则通常要还原备份文件;
  • 归档重做日志文件:包含实例生成的数据更改(重做)的实时历史记录。使用这些文件和数据库备份,可以恢复丢失的数据文件,也就是说,使用归档日志可以恢复还原的数据文件;
  • 跟踪文件:每个服务器和后台进程都可以写入关联的跟踪文件。当进程检测到内部错误时,进程会将有关该错误的信息转储到相应的跟踪文件中。写入跟踪文件的部分信息是为数据库管理员提供的,而其他信息是为Oracle支持服务提供的;
  • 预警日志文件:这些文件包含特殊的跟踪条目。数据库的预警日志是按时间顺序列出的消息日志和错误日志,Oracle建议定期查看预警日志。
2 逻辑存储结构
逻辑存储结构能够使Oracle数据库对磁盘空间使用进行细粒度的控制,包括:
  • 数据块(Data Blocks):从最细的层面来讲,Oracle数据库的数据存储在数据块中,一个数据块与磁盘中特定字节数的物理空间相对应。每个表空间的数据块大小是在创建表空间时指定的,数据库以Oracle数据块为单位使用和分配空闲数据库空间;
  • 区(Extends):区是特定数量的相邻Oracle数据块(通过一次分配获得),用于存储特定类型的信息。一个区中的Oracle数据块在逻辑上是相邻的,但在物理上可以分布在磁盘上的不同位置(RAID条带化和文件系统实施会导致此现象);
  • 段(Segments):段是为某个逻辑结构分配的一组区,例如:数据段、索引段、还原段以及临时段;
  • 表空间(Tablespaces):一个数据库分为多个逻辑存储单元,这些单元称为“表空间”,用于将相关逻辑结构或数据文件归到一组。


原文地址:https://www.cnblogs.com/alen-liu-sz/p/12975655.html