Oracle数据库系统的组成--详解

1.3.4  Oracle数据库系统的组成

Oracle数据库这个术语常常是指存储在操作系统上的数据文件,不过由于每一个Oracle数据库都与一个Oracle实例(Oracle Instance)相关联,因此常常将Orale实例和Oracle的数据库文件统称为一个Oracle数据库,对于数据库和数据库实例的具体描述如图1.14所示:

当数据库服务器启动时,会现在内存汇总分配SGA系统全局区,并启动一系列的后台进程或线程,这称为实例启动。当启动了数据库实例后,Oracle会将实例与特定的数据库进行关联,这个过程称为数据库装载(MOUNT),接下来就可以打开数据库,将其保持OPEN状态。

注意:Oracle中的每一个实例只能访问属于自己的物理数据库,但是在同一台计算机上可以并发地指定多个数据库实例。

由图1.14中可以看到,Oracle数据库的实例结构由实例结构由内存结构和进程结构组成。他们用来管理和访问数据库。应用程序连接到数据库时,实际上是连接到一个Oracle的实例,由Oracle实例中的进程和内存来为应用程序提供服务,Oracle的进程结构(在Windows操作系统汇总也可以成为线程结构)由如下几大类组成:

● 客户端进程,这些进程主要用来运行应用程序代码或Oracle的工具,比如SQL*Plus会创建一个客户端进程,一个使用Oracle的应用程序会在客户端汇总创建一个客户端进程。这些通常会创建在使用Oralce数据库的其他计算机。

● 后台进程,这是Oracle保持数据库平稳运行的核心进程,它整合了多种功能,以避免为每个客户端进程运行多个Oracle数据库程序,这些进程以异步的方式执行I/O操作,并监控其他数据库进程,以提供更大的并行度,达到更好的性能和可靠性。城建的后台进程有数据库写进程DBWn、进程监视器PMON、系统监视器SMON、检查点进程CKPT、日志写进程LGWR,以及归档日志进程ARCn。

● 服务器进程,他在用户简历到服务器的连接时启动,这些服务器端的进程与客户端进行通信,并与Oracle数据库实例进行交互以完成用户的请求,服务器进程会处理用户的操作,比如用户要查询数据时,服务器进程会在SGA呢村区中的数据库缓冲区告诉缓存中查找数据库,如果未找到,则会从数据文件中读取数据并写入到缓冲区高速缓存中。

Oracle创建和使用内存结构的目的是用来在多个用户之间共享程序代码和数据的内存,并且每个已经连接的用户具有自己的私有数据区域。与实例相关的内存结构如下所示:

● 系统全局区(SGA),全称是System Global Area,包含一个数据库实例的数据和控制信息,比如在SGA中包含了数据库缓冲区高速缓存、重做日志缓冲区、共享池、大池、Java池及Stream池等内存分类。

● 程序全局区(PGA),全称是Program Global Area,专用于每一个服务器进程或后台进程,每一个进程使用一个PGA来存储其控制信息。

Oracle的示例结构和存储结构共同构成了Oracle数据库,因此提及Oracle数据库时,不能单单认为他只是包含了几个数据文件,应想到的是他的进程结构、内存结构及物理存储结构。

原文地址:https://www.cnblogs.com/XXXHui/p/12626490.html