ORACLE数据库的体系结构

上一篇 / 下一篇  2011-03-14 14:16:47 / 个人分类:DB

数据库的体系结构是指数据库的组成、工作过程与原理,以及数据在数据库中的组织与管理机制
1.2.1 ORACLE服务器
Oracle服务器由Oracle数据库和Oracle实例组成。Oracle数据库是一个数据的集合,该集合被视为一个逻辑单元。在一个装有 Oracle数据库的服务器上,必须运行一系列进程来管理该数据库。这些进程使用大块的内存,这些内存块分别具有与特定任务相关的用途。
后台进程和内存结构的集合称为Oracle实例。如果要访问数据库中的数据,就需启动该实例。每一个运行的Oracle数据库都与一个Oracle实例相联系。

1.2.2 ORACLE组件

实例、用户进程和服务器进程驻留在内存中,而所有其他文件都存储在硬盘上。

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

 Oracle数据库:
Oracle数据库由操作系统文件组成,这些文件也称为数据库文件,为数据库信息提供实际物理存储区。Oracle数据库包括逻辑结构和物理结 构。数据库的物理结构包含数据库中的一组操作系统文件。数据库的逻辑结构是指数据库创建之后形成的逻辑概念之间的关系,如表、视图、索引等对象。


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

 Oracle实例内存结构:
Oracle的内存结构包含以下两个内存区:

 系统全局区:(SGA):实例启动时分配该内存区。
Oracle实例的SGA(System Global Area)又称为共享全局区,它用来存储数据库信息,并由多个数据库进程共享。当数据库实例启动时,SGA的内存被自动分配。SGA是数据库中占用服务器 内存最大的一个区域,同时也是影响数据库性能的一个重要指标。SGA按其作用不同,可以分为共享池、数据缓冲区及日志缓冲区。
 共享池
共享池是对SQL、PL/SQL程序进行语法分析、编译、执行的内存区域
共享池由库缓存和数据字典缓存组成。
共享池的大小直接影响数据库的性能。

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

 日志缓冲区
日志记录数据库的所有修改信息,日志信息首先产生于日志缓冲区。
当日志缓冲区的日志数据达到一定数量时,由后台进程将日志数据写入日志文件中。相对来说,日志缓冲区对数据库的性能影响较小。

 程序全局区:(PGA):服务器进程启动时分配该内存区。
程序全局区PGA(Program Global Area)包含单个服务器进程或单个后台进程所需的数据和控制信息。PGA是在用户进程连接到数据库并创建一个会话时自动分配的,该区内保留每个与 Oracle数据库连接的用户进程所需的内存。PGA为非共享区,只能单个进程使用,当一个用户会话结束后,PGA释放。

 Oracle实例进程结构:

 用户进程:
用户进程是一个需要与Oracle服务器进行交互的程序。此进程在数据库用户请求连接Oracle服务器时启动。如用户启动数据库客户端工具SQL *Plus时,系统自动建立一个用户进程。

 服务器进程:
服务器进程用于处理连接到该实例的用户进程的请求。此进程在用户建立会话并连接Oracle实例时启动。服务器进程直接与Oracle数据库交互,实现调用和返回结果。

 后台进程:
在Oracle数据库中,为了使系统性能最好和协调多个用户,实例系统中使用一些附加进程,称为后台进程。这些后台进程存在于服务器操作系统中,在实例启动时自动启动。
常用的几个后台进程如下所示:

 进程监控:(PMON)
在用户进程出现故障时执行进程恢复。(常见任务见书7)
 系统监控:(SMON)
在实例启动时执行实例恢复。(常见任务见书7)
 数据写入进程:(DBWR)
将所有修改后的缓冲区数据写入数据文件。(常见任务见书8)
 日志写入进程:(LGWR)
将日志缓冲区中的日志数据信息写入日志文件中。
 检查点:(CKPT)
保证所有修改过的数据库缓冲区数据都被写入数据库文件中。
 归档进程:(ARCH)
当数据库运行在归档模式下时,产生该进程,用于写归档日志文件。

1.2.3 ORACLE的物理组件
数据库的物理组件是指从物理角度分析数据库的组成,也就是Oracle数据库创建后使用的操作系统物理文件。Oracle数据库的物理文件可分为三类,即数据文件、日志文件和控制文件。

 数据文件:(SYSTEM01.DBF/SYSTEM01.ORA)
数据文件(Data Files)用于存储数据库数据的文件。如表、索引等数据都是存储在数据文件中。每个Oracle数据库有一个或多个物理数据文件。一个数据文件只能与一个数据库关联。
 日志文件:(REDO01.LOG)
日志文件(Redo Log Files)用于记录对数据库所进行的修改。日志文件主要用于在数据库出现故障时实施数据库恢复。

 控制文件:(CONTROL01.CTL)
控制文件(Control Files)用于记录数据库物理结构的二进制文件。该文件包含维护和验证数据库完整性的必要信息。

1.2.4 ORACLE的逻辑组件
数据库的逻辑组件是从逻辑的角度分析数据库的组成。Oracle对于逻辑结构的描述是通过数据字典存储完成的。Oracle数据库的逻辑组件包括
表空间、段、区、块和用户模式等。

 表空间(TABLESPACE):
表空间是数据库中最大的逻辑单位,Oracle数据库采用表空间将相关的逻辑组件组合在一起,一个Oracle数据库至少包含一个表空间。每个表空间由一个或多个数据文件组成,一个数据文件只能与一个表空间相联系。
在每一个数据库中都有一个名为SYSTEM的表空间,即系统表空间,该表空间是在创建数据库或数据库安装时自动创建的,用于存储系统的数据字典表、程序单元、过程、函数、包和触发器等。
创建表空间的语法如下:

扩展数据文件的语法如下:


 段(SEGMENT):
一个表空间包含一个或多个段。段是一种指定类型的逻辑存储结构一个段由多个区组成。如常用的4类段结构:
(数据段——索引段——回滚段——临时段)
 区(EXTENT):
区是磁盘空间分配的最小单位。磁盘按区划分,每次至少分配一个区。区为段分配空间,它由连续的数据块组成。一个区由多个数据块组成,块是进行数据读写操作的最小单元。
 数据块(DATA BLOCK):
数据块是数据库中最小的数据组织单位与管理单位,Oracle数据库中的数据存储于数据块中。数据块的取值范围在2KB~64KB之间。
 模式(SCHEMA):
模式是对用户所创建的数据库对象的总称,在Oracle数据库中任何数据库对象都属于一个特定用户,一个用户及其所拥有的对象即称为模式。模式对象包括表、视图、索引、同义词、序列、过程和程序包等。一个用户与相同名称的模式相关联,所以又称为用户模式。

TAG:

 

评分:0

我来说两句

Open Toolbar