Oracle体系结构组件_第1页
Oracle体系结构组件_第2页
Oracle体系结构组件_第3页
Oracle体系结构组件_第4页
Oracle体系结构组件_第5页
已阅读5页,还剩37页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Oracle体系结构组件

目标

完成这一课的学习后,您应该能达到下列目标:

概括

Oracle体系结构及其主要组件

列出在用户连接到

Oracle例程过程中涉及的结构

Oracle数据库中常用的术语进程(process):一段在内存中正在运行的程序。后台进程(backgroundprocess):进程的一种,在内存中运行时,不占显示,而且它的优先级比前台进程低。可以只有一个前台进程,但可以有多个后台进程。缓冲区(buffer):一段用来临时存储数据的内存区。主机(host):计算机系统的另一个称呼。服务器(server):一台在网络中向其他计算机系统提供一项或多项服务的主机。客户机(client):一台使用由服务器(server)提供服务的计算机系统。口令文件

基本组件概览

例程

SGA重做日志

缓冲区

共享池

数据字典

高速缓存库高速缓存

DBWRSMONPMONCKPTLGWR其它

用户进程

服务器进程

PGA控制文件

数据文件

数据库数据库缓冲区

高速缓存

重做日志文件

Java池

大型共享池

参数文件

归档日志文件

Oracle服务器

Oracle服务器:

是一个数据库管理系统,它为

信息管理提供了开放、综合和

集成的方法

包括

Oracle例程和

Oracle

数据库

Oracle服务器

Oracle例程

Oracle例程:是一种访问

Oracle数据库的方式

始终打开一个,并且只打开一个数据库

由内存结构和后台进程结构组成

后台进程结构

内存结构

例程

SGA重做日志缓冲区

共享池

数据字典高速缓存库高速缓存DBWRSMONPMONCKPTLGWR其它数据库缓冲区高速缓存

Java

大型共享池

建立连接和创建会话

连接到

Oracle例程包括:

建立用户连接

创建会话

创建的会话数据库用户

用户进程

服务器进程

建立的连接

Oracle服务器

Oracle数据库

Oracle数据库:

是一个被统一处理的数据集合

包括三类文件

口令文件

参数文件

归档的日志文件

控制

文件

数据

文件

重做

日志

文件

Oracle数据库

物理结构

物理结构包括以下三种文件类型:

控制文件

数据文件

重做日志文件

控制文件数据文件(包括数据字典)

标头

联机重做

日志文件

内存结构

Oracle的内存结构由两个内存区组成,分别是:

系统全局区(SGA):在例程启动时分配,是

Oracle

例程的基本组件

程序全局区(PGA):在服务器进程启动时分配

系统全局区

SGA包括以下几种内存结构:共享池数据库缓冲区高速缓存重做日志缓冲区其它结构(例如锁定和栓锁管理以及统计数据)

SGA中还可配置其它两种内存结构:

大型共享池

Java池系统全局区

SGA是动态的

大小由

SGA_MAX_SIZE

参数指定

SGA组件以粒组为单位进行分配和跟踪

连续的虚拟内存分配

粒组大小由估算的

SGA_MAX_SIZE

总计大小确定

Oracle执行SQL查询语句的步骤如果用户在SQL*Plus下输入了如下的查询语句:Select*fromstudent;那么,Oracle又是如何来处理这个语句的呢?Oracle执行SQL查询语句的步骤编译(parse)执行(execute)提取数据(fetch)Oracle执行SQL查询语句的步骤

编译:在进行编译时,服务器进程会将SQL语句的正文放入共享池(sharedpool)的库高速缓存(librarycache)中并将完成以下处理:首先在共享池中搜索是否有相同的SQL语句(正文),如果没有就进行后续的处理。检查该SQL语句的语法是否正确。通过查看数据字典来检查表和列的定义。对所操作的对象加编译锁以便在编译语句期间这些对象的定义不能被改变。检查所引用对象的用户权限。生成该SQL语句所需的优化的执行计划(执行步骤)。将SQL语句和执行计划装入共享的SQL区。Oracle执行SQL查询语句的步骤执行:Oracle服务器进程开始执行SQL语句是因为它已获得了执行SQL语句所需的全部资源和信息。提取数据:Oracle服务器进程选择所需的数据行,并在需要时将其排序,最后将结果返回给用户(进程)。共享池

用于存储:

最近执行的

SQL语句

最近使用的数据定义它包括以下两个与性能相关的关键内存结构:库高速缓存数据字典高速缓存其大小由

SHARED_POOL_SIZE

参数确定共享池数据字典高速缓存库高速缓存ALTERSYSTEMSETSHARED_POOL_SIZE=64M;库高速缓存

存储有关最近使用的

SQL和

PL/SQL语句的信息

启用常用语句共享由

“最近最少使用算法”

(LRU)管理

包括以下两个结构:共享的

SQL区共享的

PL/SQL区大小由共享池的大小确定

数据字典高速缓存

数据库中最近使用的定义的集合

包括与数据库文件、表、索引、列、用户、权限和其它数据库对象相关的信息

在语法分析阶段,服务器进程会在数据字典中查找用于解析对象名和验证访问的信息

将数据字典信息高速缓存到内存中,可缩短查询和

DML

的响应时间

大小由共享池的大小决定

数据库缓冲区高速缓存

存储已从数据文件中检索到的数据块的副本

能够大幅提高获取和更新数据时的性能

通过

LRU算法管理

主块的大小由

DB_BLOCK_SIZE

确定

数据库缓冲区

高速缓存

数据库缓冲区高速缓存由独立的子高速缓存组成:

DB_CACHE_SIZEDB_KEEP_CACHE_SIZEDB_RECYCLE_CACHE_SIZE大小可以进行动态调整

设置

DB_CACHE_ADVICE

可收集用于预测不同

高速缓存大小行为的统计信息

统计信息由

V$DB_CACHE_ADVICE

显示

ALTERSYSTEMSETDB_CACHE_SIZE=96M;重做日志缓冲区

记录对数据库数据块所做的全部更改

主要用于恢复

其中记录的更改称作重做条目

重做条目包含用于重新构造或重做更改的信息

大小由

LOG_BUFFER

定义

重做日志

缓冲区

Oracle执行update语句的步骤如果数据和回滚数据不在数据库高速缓冲区中,Oracle服务器进程将把它们从数据文件中读到数据库高速缓冲区中。Oracle服务器进程在要修改的数据行上加锁(行一级的锁)Oracle服务器进程将数据的变化信息和回滚所需的信息都记录在重做日志缓冲区中。Oracle服务器进程将回滚所需的原始值和对数据所做的修改都写入数据库高速缓冲区。之后再数据库高速缓冲区中所有的这些数据块都将被标为脏缓冲区,因为此时内外存的数据是不相同的(不一致的)。Oracle处理insert和delete语句的步骤与处理update语句大体相同。大型共享池

SGA中的可选内存区

分担了共享池的一部分工作

用于:

共享服务器的会话内存

(UGA)I/O服务器进程

备份和恢复操作或

RMAN并行执行消息缓冲区

PARALLEL_AUTOMATIC_TUNING

设置为

TRUE不使用

LRU列表

大小由

LARGE_POOL_SIZE

确定

Java池

存储

Java命令的服务分析要求

在安装并使用

Java时是必需的

大小由

JAVA_POOL_SIZE

参数确定

程序全局区

为连接到

Oracle数据库的每个用户进程保留的内存

在创建进程时分配在终止进程时回收仅供一个进程使用服务器进程

PGA用户进程

进程结构

Oracle利用了以下几种进程的优势:

用户进程:在数据库用户请求连接到

Oracle服务器时

启动服务器进程:与

Oracle例程相连接,在用户建立会话

时启动后台进程:在

Oracle例程启动时启动

用户进程

请求与

Oracle服务器交互的程序必须先建立连接不与

Oracle服务器直接交互

数据库用户服务器进程

用户进程建立的连接服务器进程直接与

Oracle服务器交互的程序执行生成的调用并返回相关结果可以是专用服务器或共享服务器

建立的连接

创建的会话数据库用户用户进程服务器进程Oracle服务器

后台进程维护并加强物理结构与内存结构之间的关系

必备的后台进程:

DBWR PMON CKPTLGWR SMON 可选的后台进程:

ARCn LMDn RECOCJQ0 LMON SnnnDnnn PnnnLCKn QMNn数据库写入程序

(DBWn)在以下情况下写入:出现检查点灰数据缓冲区达到阈值没有空闲缓冲区出现超时执行了

RACping请求表空间处于

OFFLINE

状态表空间处于

READONLY

状态对表执行

DROP

TRUNCATE

操作对表空间执行

BEGINBACKUP

操作例程

SGA控制

文件数据

文件重做

日志

文件数据库DBWn数据库

缓冲区

高速缓存日志写入器

(LGWR)LGWR在以下情况下写入:提交时三分之一填满时有1MB的重做时每隔三秒DBWn写入前例程SGA控制

文件数据

文件

重做

日志

文件数据库重做日志

缓冲区

DBWnLGWROracle快速提交技术当在SQL*Plus中发了commit语句之后,Oracle的内部操作步骤如下:服务器进程将把提交的记录连同所产生的SCN(systemchangenumber)一起写入重做日志缓冲区中。重做日志写进程(LGWR)将把重做日志缓冲区中一直到所提交的记录(包括该记录)的所有记录连续地写到重做日志文件中。Oracle通知用户(进程)提交已经完成。服务器进程将修改数据库高速缓冲区中的相关数据的状态并释放资源和打开锁等。系统监控程序

(SMON)职责:例程恢复前滚重做日志中的更改打开数据库供用户访问回退未提交的事务处理合并空闲空间回收临时段控制

文件数据

文件

重做

日志

文件数据库例程

SGASMON过程监视器

(PMON)进程失败后,通过以下方法进行清理:

回退事务处理释放锁释放其它资源重新启动已失效的调度

程序

PGA区

例程SGAPMON检查点

(CKPT)职责包括:在检查点发信号给

DBWn使用检查点信息更新数据文件的标头使用检查点信息更新控制文件控制

文件数据

文件重做

日志

文件数据库例程SGADBWnLGWRCKPT归档程序

(ARCn)可选的后台进程设置

ARCHIVELOG

模式时自动归档联机重做日志保留数据库的全部更改记录

ARCn归档的

重做日

志文件控制

文件数据

文件重做

日志

文件逻辑结构指示数据库物理空间的使用情况层次结构由表空间、段、区和块组成

表空间数据文件段块区段处理

SQL语句

通过以下进程连接到一个例程:

用户进程服务器进程所用的

Oracle服务器组件取决于

SQL语句的类型:

查询语句返回行DML语句记录更改提交操作确

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论