Oracle体系结构-Oracle

Oracle 21NN 3周前 (06-27) 18次浏览 未收录 0个评论 扫描二维码

Oracle体系结构5个重要组成部分。

1. 连接数据库实例的服务:为Oracle系统的体系结构中协同工作的方式;

2. 服务器进程;

3. 文件系统管理;

4. 内存区域管理:尤其是系统全局区(SGA,SystemGlobal Area)的特点和作用;

5. 后台进程

3个重点体系结构

1. 内存结构,进程结构,存储结构

2. Oracle体系结构-Oracle

3. 通过上图,可以看出每一个Oracle服务器都会包含两个主要组成部分,即Oracle实例,Oracle数据库(物理体系)

4. Oracle服务器,Oracle实例(instance),Oracle数据库(database)的关系

1. 如将Oracle比作一辆汽车,那么实例就像汽车的发动机(核心),在启动Oracle之前一定要保证实例先启动,而汽车上所拉的货物就是数据库

2. 实例与数据库的关系是数据库可以由多个实例装载和打开,而实例可以在任何时间点上装载,打开一个数据库;

Oracle实例体系

1. 数据库启动,会自动分配SGA(系统全局区)内存,构成Oracle的内存结构,而后再启动若干个常驻内存的操作系统进程,已构成Oracel的进程结构,内存区域与后台进程就构成了一个Oracle实例;

2. 每个运行的Oracle数据库都对应一个Oracle实例(或者称为例程)。每个实例启动时都会分配各自的内存结构与进程结构;

3. Oracle实例标记:在操作系统中如果存在多个Oracle实例(实例名称不可以相同),那么可以使用ORACLE_SID(或者使用INSTANCE_NAME)这个环境属性进行默认使用实例的标注;

内存结构

1. 内存存储了数据字典信息,关于对象,逻辑结构,权限等元数据,缓冲的应用数据,SQL语句,PL/SQL和Java程序数据,以及事务等信息。除了这些,还包含软件代码区和程序代码区(PGA)

1. Oracle体系结构-Oracle

2. 共享区

(1). 包括高速缓冲区,和数据字典缓冲区,数据库高速缓冲区又包括共享sql区,私有sql区,共享PL/SQL区,及控制结构区

1). 私有sql区:用来存放sql语句执行时与之有关的每一个会话的私有数据。在专用服务器中,私有sql区存在PGA中,在啊共享服务器内,私有SQL区存在共享区中;

2). 共享SQL区:用户执行sql时,Oracle会将最近执行的sql语句的文本,编译后的语法分析树和执行计划存入共享区。而将sql语句中的变量值存入私有Sql区。当服务器再次执行相同的sql语句时,服务器进程将不再进行语句分析,而是直接执行共享sql区内已经存在的内容;

3). 共享PL/SQL区:Oracel执行一个PL/SQL语句前,会先将程序单元放入共享PL/SQL区,而程序单元内的SQL语句将被放到SQL区中,当需要再次执行相同的程序单元时,直接从内存中调用,不用再次访问磁盘;

4). 结构控制区:供实例内部使用的一段内存区,存放了锁方面的信息;

3. 数据库缓冲区

(1). 该区是SGA中的一个高速缓冲区域,用来存储最近从数据文件中读取的数据块,表,索引数据库。当用户处理查询时,服务器进程会先从数据库缓冲区查找所需要的数据库,缓冲区中没有时才会访问磁盘数据;

4. 重做日志缓冲区

(1). 当用户通过sql语句更改数据后,服务器进程会在重做日志缓冲区中记录这些修改。数据库发生意外后,可通过此记录恢复数据

5. 大池

(1). 可选的内存区。大池提供额外的内存,供一些消耗大量内存的操作使用;

6. Java池

(1). 该处存放了Java文本,语法分析等信息。如果要安装Java VM就必须启用Java池;

7. Streams池

(1). 该区域是10g新添加的。它用来存放信息。它存放的内容是共享的。利用该池管理信息比原来捕获和管理消息更容易;

8. 数据字典缓冲区

(1). 它包含了数据库的结构,用户信息和数据库的表,视图等信息;还有所有表和视图的名词,以及权限等信息;

9. 程序全局区(PGA)

(1). 程序全局区:包括会话信息,堆栈空间,排序区以及游标状态;

1). 会话信息存放的是会话的权限,角色,会话性能统计等信息;

2). 堆栈空间内存放的是变量,数组和属于会话的其他信息;

3). 排序区则是用于排序的一段专用空间;

4). 游标状态存放的则是当前使用的各种游标的处理阶段;

(2). 当用户进程连接到Oracle后,服务器会创建一个会话,同时分配一个PGA区,该区由一个用户进程使用,不能共享;

1). 对专用服务器(一个数据库连接对应一个专用服务器进程),PGA保存堆栈空间信息,会话信息,游标状态和排序区。

2). 对共享服务器,PGA仅保存堆栈空间信息,而会话信息,游标状态,排序区保存在SGA中。

3). PGA结构如图:

A. Oracle体系结构-Oracle

3种类型的进程

1. 用户进程,服务器进程和后台进程,用户进程与服务器进程的关系,如图

(1). Oracle体系结构-Oracle

(2). 当用户需要在Oracle进行操作时,首先要建立连接,从而建立用户进程与服务器进程之间的通信通道。当用户与服务器建立了连接之后,就会通过一个会话来表示,不同会话间的操作彼此独立;

(3). Oracle的后台进程与实例同时启动,主要作用是维持数据库的物理结构和内存结构,后台进程的结构如下:

1. Oracle体系结构-Oracle

2. 上图主要的后台进程作用如下:

(1). 系统监控进程(SMON):数据库启动时,SMON会使用联机重做日志文件恢复崩溃的实例;

(2). 进程监控进程(PMON):主要是监视用户进程的运行;当用户进程失败时,清除用户进程和进程所占用的资源;

(3). 检查点进程(CKPT):用来控制数据文件,控制文件和重做日志文件之间的协调同步;

(4). 数据库写进程(DBWO):此进程负责管理数据库缓冲区以及数据字典缓冲区;

(5). 日志写进程(LOWR):负责重做日志缓冲区的内容写入联机重做日志文件;

(6). 归档进程(ARCO):将写满的重做日志文件转存到指定的设备上,以保证先前的重做日志文件不至于被覆盖;

(7). 恢复进程(RECO):用于恢复分布式数据库环境中失败的事务;

(8). 作业队列进程(SNPn):可以完成一些应用程序的周期性执行工作。

(9). 锁进程(LCKn):用于锁定数据库对象,不被数据库其他进程更改。

Oracle物理体系

1. 该体系就是数据库的物理体系,就是存放在磁盘上的结构文件;在数据库中的所有数据,都保存在这些物理文件中;

2. 控制文件(Control file):控制文件用于控制数据库的物理结构。它记录了数据库中所有文件的控制信息;

3. 数据文件(Data File):每个Oracle数据库都有一个或多个物理的数据文件。一个数据库的数据文件包含全部数据库数据。

4. 重做日志文件(Log File):Oracle用重做日志文件来保存所有数据库事务的日志;

5. 参数文件(Parameter File):保存Oracle配置有关的信息,一般有如下3类参数文件:

(1). 初始化参数文件:用于在数据库启动实例时配置数据库,该文件主要设置数据库实例名称,主要使用文件的位置,实例所需要的内存区域大小等;

(2). 配置参数文件:在数据对应多个实例的时候才会存在,如果一个数据库只对应一个实例则不会产生此文件。此文件一般被命名为config.org,该文件一般由初始化参数文件调用;

(3). 二进制参数文件:会存在两种参数文件,一种是pfile,此文件是基于文本格式化的参数文件,含有数据库的配置参数。另一种Server Parameter File,服务器参数文件,此文件是基于二进制格式的参数文件,含有数据库及例程的参数和数值;


21NN.CN , 版权所有丨如未注明 , 均为原创丨转载请注明原文链接:Oracle体系结构-Oracle
喜欢 (0)
[1353713598@qq.com]
分享 (0)
关于作者:
发表我的评论
取消评论
表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址