数据库实例与进程简介

来源:互联网 发布:facebook刷赞软件 编辑:程序博客网 时间:2024/05/18 01:51

数据库实例:

实例是由操作系统中的一组内存区和一系列的操作系统进程组成,数据库则是指Oracle保存数据的一系列物理结构和逻辑结构,用户在访问Oracle数据库时主要是在与实例打交道,由实例访问数据库,并返回相应的操作结果。
最简单的Oracle数据库结构是由一个实例和一个数据库组成,不过对于RAC(或OPS)架构的Oracle数据库,一个数据库会对应多个实例。
在Oracle数据库,实例和数据库可以理解成两个相互间有关联的独立个体,每个数据库都至少有一个与之对应的实例(对于OPS/RAC架构的Oracle数据库,一个数据库会对应多个实例),每个实例在其生命周期内同时只能对应一个数据库。所谓的启动Oracle数据库时,实际上是连接到实例,说的更直白点儿,就是连接到操作系统的某些进程,并由这些进程访问处理内存中的对象,至于这些对象时如何从磁盘被读取到内存,那正是实例所做的工作。
数据库则是:数据库文件--数据文件+REDO日志+控制文件、密码文件、初始化参数文件等
数据库服务器等于:实例+数据库   ==》对客户机来说,通过服务连接数据库,只需要知道服务。
Oracle中的实例有内存结构和进程结构两大部分组成。

服务器进程和实例后台进程区别:

实例的一部分是内存结构,实例的另外一部分就是进程。与内存不同,进程都是实实在在的存在,你可以看得见(不过摸不着)。通过相关进程,Oracle实现数据库与实例的连通;通过相关进程,Oracle实现数据库与实例的互动;通过相关进程,Oracle实现对Oracle数据库的应用。

Oracle进程分为两类:服务器进程(Server Process)和后台进程(Background Process),下面分别进行区分。

服务器进程

Oracle的服务器进程有Oracle实例自动创建,用来处理连接到实例的客户端进程发出的请求,用户必须通过连接到Oracle的服务器进程来获取数据库中的信息。对于专用服务器模式,客户端进程和Oracle服务器进程是一一对应的,而在共享服务器模式下,一个Oracle服务器进程可能同时服务多个客户端进程。                                                                      专有连接模式 :用户进程对应一个SERVER PROCESS
此时新增一个服务器进程,大约需要的内存是: AIX 5-10M  ;LINUX 3-5M内存

建库时默认是专有连接模式

服务器进程主要用来执行下列的任务:
 解析、执行客户端提交的SQL语句。
从磁盘数据文件中读取必须的数据块到SGA得数据缓存区。
以适当形式返回SQL语句执行结果。
user process用户进程
通过tnsnames.ora中的服务名,连接到数据库服务器的服务器进程。要经过监听到服务器进程--PGA

后台进程:

服务器进程主要是与客户端进程打交道,后台进程则是让内存区与物理文件打交道。像Oracle数据库这么庞大的结构,要保持高效、稳定并且具有良好的性能,只有几个经纪人显然不行的,因此各项标准服务都由特定进程专门处理,比如写数据文件要有DBWR进程,写归档文件要有ARCH进程等。由Oracle在后台自动启动、管理和维护,因此这些进程才被称为后台进程。