31
ORACLE 系系系

ORACLE 体系结构

  • Upload
    janina

  • View
    126

  • Download
    4

Embed Size (px)

DESCRIPTION

ORACLE 体系结构. Oracle 的主要组成部分. Oracle 的主要组成部分. Oracle server 由 Oracle instance 和 Oracle database 组成。 Oracle instance 由后台进程和内存结构构成。 Oracle database 由多个操作系统文件(数据库文件)构成。 其它组成部分. Oracle Server. Oracle Instance. 用于存取 Oracle database 一次只能打开一个数据库. 建立连接与创建会话. 连接与会话. 连接( connection ) - PowerPoint PPT Presentation

Citation preview

Page 1: ORACLE 体系结构

ORACLE 体系结构

Page 2: ORACLE 体系结构

Oracle 的主要组成部分

Page 3: ORACLE 体系结构

Oracle 的主要组成部分 Oracle server

– 由 Oracle instance 和 Oracle database 组成。 Oracle instance

– 由后台进程和内存结构构成。 Oracle database

– 由多个操作系统文件(数据库文件)构成。 其它组成部分

Page 4: ORACLE 体系结构

Oracle Server

Page 5: ORACLE 体系结构

Oracle Instance

用于存取 Oracle database 一次只能打开一个数据库

Page 6: ORACLE 体系结构

建立连接与创建会话

Page 7: ORACLE 体系结构

连接与会话 连接( connection )

– 连接是用户进程与服务器进程之间的一条通信路径。

会话( Session )– 会话是用户到 Oracle Server 的一次特定连接。

Page 8: ORACLE 体系结构

Oracle Database

Page 9: ORACLE 体系结构

Oracle 的内存结构 Oracle 的内存结构由以下两个部分组成:

– System Global Area ( SGA ): Oracle Instance 的 基本组成部分,在实例启动时分配。

– Program Global Area ( PGA ) :当服务器进程启动时分配

Page 10: ORACLE 体系结构

System Global Area(SGA)

SGA 由以下内存结构构成– Shared Pool– Database Buffer Cache– Redo Log Buffer– 其它结构

还可以选择为 SGA 配置以下两个可选的内存结构:– Large Pool– Java Pool

SHOW SGA ;

Page 11: ORACLE 体系结构

Shared Pool

Shared Pool 用于缓存最近被执行的 SQL语句和最近被使用的数据定义。

它主要由两个内存结构构成:– Library cache– Data dictionary cache

修改共享池的大小– ALTER SYSTEM SET SHARED_POOL_SI

ZE = 64M;

Page 12: ORACLE 体系结构

Library Cache

Libray Cache 缓存最近被执行的 SQL 和PL/SQL 的相关信息。– 实现常用语句的共享– 使用 LRU 算法进行管理– 由以下两个结构构成:

• Shared SQL area

• Shared PL/SQL area

Page 13: ORACLE 体系结构

Data Dictionary Cache

Data dictionary cache 缓存最近被使用的数据库定义。– 它包括关于数据库文件、表、索引、列、用户、权限以及其它数据库对象的信息。

– 在语法分析阶段, Server Process 访问数据字典中的信息以解析对象名和对存取操作进行验证。

– 将数据字典信息缓存在内存中有助于缩短响应时间。

Page 14: ORACLE 体系结构

Database Buffer Cache

Database Buffer Cache 用于缓存从数据文件中检索出来的数据块。– 可以大大提高查询和更新数据的性能。– 使用 LRU 算法进行管理

Page 15: ORACLE 体系结构

Redo Log Buffer Cache

Redo Log Buffer Cache 缓存对于数据块的所有修改。– 主要用于恢复– 其中的每一项修改记录都被称为 redo 条目。– 利用 Redo 条目的信息可以重做修改。

Page 16: ORACLE 体系结构

Large Pool

Large Pool 是 SGA 中一个可选的内存区域,它只用于 shared server 环境。– 可以减轻共享池的负担– 可以为备份、恢复等操作来使用– 不使用 LRU 算法来管理– 指定 Large Pool 的大小

• ALTER SYSTEM SET LARGE_POOL_SIZE=64M

Page 17: ORACLE 体系结构

Java Pool

Java Pool 为 Java 命令的语法分析提供服务– 在安装和使用 Java 的情况下使用– 其大小由 JAVA_POOL_SIZE 指定

Page 18: ORACLE 体系结构

Program Global Area(PGA)

PGA 是为每个连接到 Oracle database 的用户进程保留的内存。

User Process

Server Process Stack

space

Session informationsort area, cursor information

Shared SQL Area

Stack space

sort area, cursor information

SGA

Shared SQL Area

Session information

SGA

PGA Didicated Server Shared Server

Page 19: ORACLE 体系结构

Program Global Area(PGA)

PGA 存储一个服务器进程或后台进程的数据和控制信息,并且只能由一个进程使用。它在进程创建时分配,在进程结束时被收回。

Page 20: ORACLE 体系结构

进程 Oracle 拥有以下类型的进程:

– User Process– Server Process– Background Process

Page 21: ORACLE 体系结构

用户进程( User Process ) 是一个需要与 Oracle Server 交互的程序

– 运行于客户端– 当用户运行某个工具或应用程序(如 SQL*

Plus )时创建,当用户退出上述程序时结束– 向 Oracle Server 发出调用,但它并不与 Or

acle Server 直接交互,而是通过 Server Process 与 Oracle Server 进行交互。

Page 22: ORACLE 体系结构

Server Process

是一个直接与 Oracle Server 交互的程序。 与 Oracle Server 运行于同一台机器上 使用 PGA 执行 User Process 发出的调用,并向 Use

r Process 返回结果状态和结果信息。

Page 23: ORACLE 体系结构

Background Process

后台进程用于维护物理存储与内存中的数据之间的关系。主要包括:– DBWn– PMON– CKPT– LGWR– SMON– RECO– ARCn

Page 24: ORACLE 体系结构

Database Writer(DBWn)

DBWn 在以下情况将数据写入磁盘:– 发生检查点– 达到脏缓冲区阈值– 没有可用的缓冲区– 超时– 将表空间设置为脱机或只读

– 删除或截断表– 备份表空间

Page 25: ORACLE 体系结构

LOG Writer ( LGWR ) LGWR 在以下情况将缓冲区中的数据写入磁盘:– 事务提交– 三分之一的 redo日志缓冲区已满

– Redo日志缓冲区中的内容超过 1M

– 每三秒钟– 在 DBWn 写磁盘之前

Page 26: ORACLE 体系结构

System Monitor(SMON)

负责检查和维护 Oracle database 的一致性。它主要完成以下工作:– 实例恢复

• 重做已提交的事务• 打开数据库• 回滚未提交的事务

– 合并数据文件中相邻的自由空间– 释放临时段的空间

Page 27: ORACLE 体系结构

Process Monitor(PMON)

当某个进程失效时,清除相关的资源。它主要负责以下工作:– 回滚用户的当前事务– 释放相关的锁– 释放其它相关的资源

Page 28: ORACLE 体系结构

Checkpoint(CKPT)

Checkpoint 负责:– 使 DBWn 将 SGA 中所有被修改的数据库缓冲区的内容写入磁盘,无论事务是否被提交

– 用检查点信息更新数据文件头– 用检查点信息更新控制文件

它可以保证:– 将经常被修改的数据块写入磁盘– 简化实例恢复

Page 29: ORACLE 体系结构

Archiver ( ARCn ) 是一个可选的后台进程 当把数据库设置为 ARCHIVELOG模式时,可以自动归档联机 redo日志

能够保存所有对数据库所做修改的记录

Page 30: ORACLE 体系结构

查询处理 解析

– 在 Shared Pool 中寻找是否有同样的语句– 检查语法、对象名和权限– 对解析用到的对象加锁– 创建和存储执行计划

执行获取和返回数据

Page 31: ORACLE 体系结构

处理 DML 语句 解析 执行