`

ORACLE数据库的体系结构

 
阅读更多

一、Oracle服务器是由Oracle数据库和Oracle实例组成的。Oracle数据库就是一个数据的集合,该集合被视为一个逻辑单元。在一个装有Oracle数据库的服务器上,必须运行一些列的进程来管理该数据库,而这些进程需要大块的内存,这些内存分别具有和特定操作相关的用途。后台进程和内存结果的集合被成为Oracle实例,如果需要访问该数据库,就要启动相关的实例。

 

1、Oracle实例:Oracle实例是后台进程和内存结构的集合,必须启动实例才能访问数据库。Oracle实例启动时,将分配一个系统全局去(SGA)并启动一系列的后台进程。每一个后台进程在数据库中执行不同的任务。一个实例只能打开并使用一个数据库。

2、Oracle数据库:是一系列物理文件的集合(数据文件,控制文件,联机日志,参数文件等),是为数据库信息提供实际的物理存储区。Oracle数据库包括物理结构和逻辑结构。数据库的物理结构包含数据库中的一组操作系统文件,而数据库的逻辑结构是指数据库创建之后形成的逻辑概念之间的关系,如表、视图、索引。

(1)、数据文件:用来存储数据库数据的文件,如表、索引等数据都是存储在数据文件中,每个数据库都有一个或多个数据库文件。

(2)、日志文件:用来记录对数据库所进行的修改。日志文件主要用于在数据库出现故障时对数据库数据进行恢复。

(3)、控制文件:用来记录数据库物理结构的二进制文件。该文件包含维护和验证数据库完整性的必要信息。

3、Oracle会话:会话就是用户与Oracle服务器的单个连接。当用户与Oracle服务器建立连接时创建会话;当用户与服务器断开连接时关闭会话。当一个数据库用户同时用多个不同的应用程序或从多个终端连接Oracle服务器时,会创建多个会话。

二、Oracle实例的内存结构:

1、系统全局区(SGA):当实例启动时分配该内存区,又成为共享全局区。他用来存储数据库信息,并由多个后台进程共享。当数据库实例启动时,SGA内存被自动分配。SAG是数据库中占有服务器内存最大的一个区域,同时也是影响数据库性能的一个重要指标。SGA按其作用不同可以分为共享池、数据缓冲区和日志缓冲区。

(1)、共享池:是对SQL、PL/SQL程序进行语法分析、编译、执行的内存区域。共享池包括库缓存和数据字典缓存。共享池的大小直接影响到数据库的性能。

(2)、数据缓冲区:用户存储从磁盘数据文件读取的数据,对于所有用户共享。服务器进程将读入的数据保存在数据缓冲区中,当后续的请求读取这些数据时可以直接从内存中得到,不需要再从磁盘中读取,提高了读取速度。缓冲区的大小对数据库的读取速度有直接影响。

(3)、日志缓冲区:用来记录对数据库的修改信息,日志信息首先存储在日志缓冲区中,当日志缓冲区中的数据达到一定数量时,由后台进程将日志数据写入日志文件中。相对来说,日志缓冲区对数据库的性能影响较小。

2、程序全局去(PGA):在用户进程连接到数据库并创建一个会话时自动分配的,该区内保留了每个与Oracle数据库连接的用户进程所需的内存。PGA为非共享区,只能单个进程使用,当一个会话结束时,PGA释放。

三、Oracle实例进程结构:
1、用户进程: 用户进程是一个需要与Oracle服务器进行交互的程序。此进程在数据库用户请求连接Oracle服务器时启动。如用户启动数据库客户端工具SQL *Plus时,系统自动建立一个用户进程。
2、服务器进程: 服务器进程用于处理连接到该实例的用户进程的请求。此进程在用户建立会话并连接Oracle实例时启动。服务器进程直接与Oracle数据库交互,实现调用和返回结果。
3、后台进程: 在Oracle数据库中,为了使系统性能最好和协调多个用户,实例系统中使用一些附加进程,称为后台进程。这些后台进程存在于服务器操作系统中,在实例启动时自动启动。

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics