体系结构

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Oracle体系结构

一、

概述:

Oracle服务器是一种对象关系数据库管理系统,它为信息管理提供开放、综合和集成的方法。Oracle 服务器中有多种进程、内存结构和文件,但当处理SQL 语句时并非都

使用它们。有一些用于改善数据库性能确保数据库能够在软件或硬件错误事

件中得以恢复或者执行维护数据库所需的其它任务。

Oracle 服务器由一个Oracle 例程和一个Oracle 数据库组成

Oracle 例程是后台进程和内存结构的组合,必须启动例程才能访问数据库中的数据,每次启动例程都会分配系统全局区(SGA) 并启动Oracle后台进程

• SGA 是用于存储数据库信息的内存区该信息为数据库进程所共享

Oracle 数据库是作为一个单元处理的数据集合,数据库的一般用途是存储和检索相关信息。数据库有一个逻辑结构和一个物理结构,数据库的物理结构是数据库中操作系统文件的集合Oracle 数据库由三种文件类型组成:

• 数据文件包含数据库中的实际数据。数据存储在用户定义的表中,但是数据文件也包含数据字典、成图象前的修改数据、索引以及其它类型的结构。一个数据库至少有一个数据文件。数据文件的特点是

–一个数据文件只能与一个数据库相关;

–可以为数据文件设置某些特性以便它们在数据库运行空间不足时能够自动扩展;

–一个或多个数据文件形成数据库存储的逻辑单元。这个单元称为表空间。• 重做日志包含对数据库所做的更改记录,这样万一出现故障可以启用数据恢复。一个数据库至少需要两个重做日志文件。

• 控制文件包含维护和验证数据库完整性的必要信息。例如:控制文件用于识别数据文件和重做日志文件。一个数据库至少需要一个控制文件。

Oracle 服务器也使用一些其它文件,这些文件并不是数据库的一部分:

• 参数文件定义Oracle 例程的特性。例如:它包含调整SGA 中一些内存结构大小的参数。

• 口令文件认证哪些用户有权限启动和关闭Oracle 例程。

• 归档的重做日志文件是重做日志文件的脱机副本,这些副本可能对于从介质失败中进行恢复很必要。

Oracle 例程由SGA 内存结构和用于管理数据库的后台进程组成。例程是通过使用对每个操作系统特定的方法来进行标识的。例程一次只能打开和使用一个数据库。

SGA 是用于存储数据库信息的内存区,该信息为数据库进程所共享。它包含Oracle 服务器的数据和控制信息,它是在Oracle 服务器所驻留的计算机的虚拟内存中得以分配,SGA 由几种内存结构组成

• 共享池用于存储最近执行的SQL 语句和最近使用的数据字典数据。这些SQL 语句可以是用户进程提交的,也可以是从数据字典读取的,在存储过程的情况中。• 数据库缓冲区高速缓存用于存储最近使用的数据。这些数据从数据文件读取或者写入数据文件

• 重做日志缓冲区用于跟踪服务器和后台进程对数据库所做的更改

在SGA 中还有两种可选的内存结构:

• Java 池用于存储Java 代码

• 大型共享池用于存储并不与SQL 语句处理直接相关的大型内存结构。例如:在备份和复原操作过程中复制的数据块

后台进程

例程中的后台进程执行用于处理并行用户请求所需的通用功能,而不会损害系统的完整性和性能。它们把为每个用户运行的多个Oracle 程序所处理的功能统一起来。后台进程执行I/O 并监控其它Oracle 进程以增加并行性,从而使性能和可靠性更加优越。

根据配置情况Oracle 例程可以包括多个后台进程,但是每个例程都包括下面五个必需的后台进程:

• 数据库写入程序(DBW0) 负责将更改的数据从数据库缓冲区高速缓存写入数据文件。

• 日志写入程序(LGWR) 将重做日志缓冲区中注册的更改写入重做日志文件。• 系统监控程序(SMON) 检查数据库的一致性如有必要还会在数据库打开时启动数据库的恢复。

• 过程监视器(PMON) 负责在一个Oracle 进程失败时清理资源。

• 检查点进程(CKPT) 负责在每当缓冲区高速缓存中的更改永久地记录在数据

库中时,更新控制文件和数据文件中的数据库状态信息

在分析阶段,服务器进程使用SGA 中称作共享池的区域来编译SQL 语句共享池有两个基本组件

• 库高速缓存

• 数据字典高速缓存

库高速缓存在称为共享SQL 区域的内存结构中存储最近使用的SQL 语句信息。共享SQL 区域包含:

• SQL 语句文本;

• 分析树语句的已编译版本;

• 执行计划执行语句时要采取的步骤;

优化程序是Oracle 服务器中的功能,它确定最优的执行计划。

如果重新执行SQL 语句而且共享SQL 区域已经包含语句的执行计划,那么服务器进程就不需要分析语句。库高速缓存通过减少分析时间和内存要求来改善重新使用SQL 语句的应用程序的性能。如果SQL 语句没有重新使用,那么它最终会从库高速缓存中超龄释放。

数据字典高速缓存也称为字典高速缓存或行高速缓存,是数据库中最近使用的定义的集合,它包括有关数据库文件、表、索引、列、用户、权限以及其它数据库对象的信息。

在分析阶段,服务器进程在字典高速缓存中查找信息,以解析SQL 语句中指定的对象名并验证访问权限。如果有必要,服务器进程启动从数据文件对该信息的加载。

共享池的大小由初始化参数SHARED_POOL_SIZE 指定

数据库缓冲区高速缓存的功能

处理查询时,服务器进程在数据库缓冲区高速缓存中查找任何所需的块。如果未在数据库缓冲区高速缓存中找到这个块,服务器进程就从数据文件读取这个块,并且在缓冲区高速缓存中放置一个副本,由于对同一个块的后续请求可以在内存中找到这个块,因此这些请求可能不需要物理读取。Oracle 服务器使用最近最少使用算法来释放近期未被访问的缓冲区,以便在缓冲区高速缓存中为新块腾出空间。

缓冲区高速缓存中每个缓冲区的大小都与Oracle 块的大小相等。而且它由

DB_BLOCK_SIZE 参数指定,缓冲区的数目等于DB_BLOCK_BUFFERS 参数值。

相关文档
最新文档