`
yuanlanjun
  • 浏览: 1184620 次
文章分类
社区版块
存档分类
最新评论

《深入解析Oracle》学习笔记(7)---Oracle体系结构之软件结构

 
阅读更多

[声明:本文是学习著名ORACLE DBA盖国强先生的大作《深入解析ORACLE--DBA 入门 进阶与诊断案例》的学习笔记与心得体会。在此声明,文中摘录了书中部分内容,非是出于抄袭目的,而是有感于盖国强先生所写确实经典。在此声明对原作者的尊重与敬佩。]

第五章 Oracle内存管理

Oracle内存管理是建立在对Oracle内存结构的精通基础上的,下面是我对Oracle内存结构的理解,简述如下,欢迎指正。

Oracle软件结构由内存结构和进程结构组成。
Oracle数据库的软件结构就是“Oracle实例”,在启动Oracle数据库时,Oracle首先要在内存中获取、划分、保留各种用途的区域-----内存结构;运行各种后台进程-----进程结构。
这就是一个实例。该实例负责挂载、打开数据库,之后由这个实例访问和控制数据库的各种物理结构、执行SQL语句、调整数据库性能。
实例是用户与数据库之间的一个中间层。
一.内存结构:包括SGA和PGA,另外还包括软件代码区。
1.SGA(System Global Area-系统全局区):Oracle的心脏。每个实例只有一个SGA。所有的用户进程、所有的服务器进程可以共享同一个SGA,是用户与服务器通信的中心。
主要由数据高速缓存、重做日志高速缓存、共享池组成。SGA在实例启动时创建,实例关闭时释放。
SGA包括:
固定区域(Fixed Area)、共享池(Shared Pool)、数据高速缓存区(Buffer Cache)、重做日志缓存区(Redo Log Buffer)、java池(java pool)、大池(large pool)、流池(stream pool)。
2.PGA(Program Global Area-程序全局区):PGA在用户进程连接到数据库并创建一个对应的会话时,由Oracle为服务器进程分配的专门用于当前用户会话的内存区。这个内存区时非共享的、不可写的,
只有服务器进程本身才能访问对应的PGA。PGA大小由操作系统决定、PGA内容由专业服务器模式还是共享服务器模式决定。
会话终止时,PGA被自动释放。
主要由排序区、会话区、游标状态区、堆栈区组成。
.排序区
在专用服务器模式下,PGA中才存在排序区,在共享服务器模式下,排序区和私有SQL区是在SGA中。
由参数SORT_AREA_SIZE决定,而另一个相关的初始化参数SORT_AREA_RETAINED_SIZE的值则决定了在排序结束后,排序区保留的内存大小,这部分内存并不归还给操作系统,而是随时待命下一次排序。
若排序区空间不够,会启用临时表空间的临时段来暂存中间排序结果,待所有排序结束后,再将整合后的排序结果从临时表空间的临时段中取出。因此,要针对业务合理设置SORT_AREA_SIZE参数值,
避免排序区与临时表空间之间的数据交换,使排序工作在内存中完成。
.会话区
存储会话所具有的权限、角色、性能统计信息。
.游标状态区
存储了会话中,当前使用的各个游标的状态。
.堆栈区
存储会话中的绑定变量、会话变量、SQL语句运行时的内存结构等信息。

二.进程结构:包括用户进程和服务器进程。
1. 用户进程
当用户在客户端启动一个Oracle数据库的应用程序时,就会在客户端创建一个Oracle的用户进程,以便执行相应的任务。
与用户进程相关的两个概念是连接和会话。
.连接:
用户登录到Oracle服务器,Oracle在服务器上产生一个服务器进程,该服务器进程代表运行在客户端的用户进程与服务器通信。用户进程与服务器进程之间就是一个连接。
.会话:
建立连接后,就自动创建一个会话,但若该会话使用完毕后,直接更换用户,那么旧的会话将被新的会话替换,但仍然在原来的连接上。除非断开连接后者网络中断。
2. Oracle进程
包括服务器进程和后台进程。
2.1 服务器进程:
是给客户端的用户进程提供服务的,用户进程必须通过服务器进程才能访问数据库。服务器进程分为专用服务器进程(只为一个用户进程提供服务)和共享服务器进程(可以为多个用户进程提供服务)。
在专用服务器模式下:客户端的用户进程和服务器端的服务器进程一一对应,Oracle会为每个连接启动一个服务器进程,用户进程必须将请求发给服务器进程才能访问数据库,服务器进程执行具体的命令后返回结果给用户进程。
因为这个连接用于专门处理该客户端的所有请求,所以直到用户主动断开连接或网络出现中断该服务器进程才会停止。专用服务器进程所需要的资源全部在PGA中分配。
在共享服务器模式下:Oracle会在服务器端启动一定数量的服务器进程,多个客户端用户进程请求共享同一个Oracle服务器服务进程,一个服务器的进程响应多个用户连接,
共享连接在实例一启动,就分配指定数量的服务器进程,所有用户的连接,以排队的方式,由分配器指定给服务器进程,其它的进程排队等待,只要用户的请求执行完毕,服务器进程就会马上断开连接,分配器会把空闲的服务器进程分配给其它排除的进程。
采用共享连接可以有效的提高服务器资源的利用率,但是对一个分配器,只支持一种协议,每个分配器有自已的排队队列,在请求的任务完成后,由分配器将操作结果返回给相应的用户进程。但是共享连接的建立, 需要Oracle的监听进程、分配器、共享服务器进程才能共同完成一个连接的创建,所以连接的分配也需要一定的时间和资源。
服务器进程主要完成如下任务:
.解析并执行用户提交的SQL语句。
.搜索SGA的数据库缓存,如果数据不在SGA的数据库缓存中,则将其从数据文件中读入。
.将结果返回给用户。
2.2 后台进程:
主要完成如下任务:
.在内存和外存之间进行I/O操作。
.监视各个进程的状态。
.协调各个进程的任务。
.维护系统的性能。
.保证系统的可靠性。
后台进程包括:DBWn(DataBase Writer,数据库写进程),LGWR(Log Writer,日志写进程),CKPT(ChecKPoint,检查点进程),SMON(System MONitor,系统监视进程),
PMON(Processor Monitor,进程监视进程),ARCn(Archive,归档进程),Dnnn(Dispatcher,调度进程),RECO(RECOverer,恢复进程),LCKn(LoCK,锁进程)。

根据两种连接的创建方法和管理方法,一般来说:
对于长事务或大事务,使用专用连接,可以有效的提高系统的性能,减少用户等待和事务的排队,提高系统的利用率,如OLTP,BI等。
对于超短事务和短事务、小事务,使用共享连接方式,可以在资源与效率之间达到一种平衡,比如网站,信息管理系统等。

分享到:
评论

相关推荐

    Oracle数据库体系结构-学习笔记.docx

    Oracle数据库体系结构-学习笔记,经过整理梳理让你比较清楚的学习整个Oracle体系

    Oracle 10g 学习笔记

    │ oracle体系结构.txt │ oracle学习 - zgh2002007的专栏 - CSDN博客.mht │ Oracle学习笔记(chstone原创).mht │ ORACLE学习笔记(一) - lvhuiqing的专栏 - CSDN博客.mht │ ORACLE学习笔记(一) - lvhuiqing...

    Oracle 12c体系结构学习实验笔记

    Oracle 12c体系结构(一).pdf Oracle 12c体系结构(二).pdf Oracle 12c实验-段和高水位线.pdf Oracle 12c实验-管理表空间.pdf Oracle 12c实验-管理归档重做日志.pdf Oracle 12c实验-管理控制文件.pdf Oracle 12c...

    ORACLE学习笔记(一)---体系结构

    NULL 博文链接:https://kantery.iteye.com/blog/539355

    最全最通俗易懂的ORACLE学习笔记

    个人在学习ORACLE过程当中记录下来的学习笔记,通俗易懂,适合想快速了解ORACLE基本语法的朋友

    Oracle 认证学习笔记

    oracle 9i dba 认证教程学习笔记 第一章 oracle 数据库体系结构基础 1、oracle 数据库系统:为具有管理oracle数据库功能的计算机系统。 2、系统全局区(system global area):在数据库服务器上启动一数据库时的...

    Oracle数据库体系结构-学习笔记

    Oracle数据库体系结构-学习笔记,经过整理梳理让你比较清楚的学习整个Oracle体系

    oracle学习笔记

    oracle 学习笔记总结 记录详细 Oracle8i9i知识全讲解 Oracle Note Oracle_EXP、IMP用法详解 Oracle_Job应用 Oracle_闪回技术 Oracle_体系结构 Sql_各种连接

    Oracle学习笔记

    Oracle体系结构的简介 --整理《Oracle数据库精讲与疑难解析》 --作者:赵振平

    炼数成金 课程+教材 Oracle数据库职业直通车-Oracle入门学习教学视频 谭怀远老师.txt

    第5课 Oracle体系架构简述 第6课 Oracle数据库的对象(1) 第7课 Oracle数据库的对象(2) 第8课 复杂一些的SQL语句 第9课 学写存储过程和函数 第10课 数据字典 第11课 数据库的备份和恢复 第12课 DBA日常工作...

    Oracle 19C OCP全程课堂笔记

    第4节 Restart安装后续工作、学习资料分享、cdb体系结构.pdf 第5节 连接cdb和pdb、创建服务、手工创建cdb等.pdf 第6节 通过duplicate创建cdb、EMDE等.pdf 第7节 PDB的创建1(从pdb$seed、克隆远程和本地的PDB)....

    oracle学习笔记(10g)

    oracle9i&10g编程艺术学习笔记。 记录了本书的重点、难点。

    通10g系统管理笔记1__Oracle体系结构

    通10g系统管理笔记1__Oracle体系结构 学习Oracle 的超级棒的资料!!! 本人呕心编著。

    oracle学习文档 笔记 全面 深刻 详细 通俗易懂 doc word格式 清晰 连接字符串

    oracle学习文档 笔记 全面 深刻 详细 通俗易懂 doc word格式 清晰 第一章 Oracle入门 一、 数据库概述 数据库(Database)是按照数据结构来组织、存储和管理数据的仓库,它产生于距今五十年前。简单来说是本身可视...

    最牛逼的Oracle11gOCP学习笔记

    Oracle Architectural Components 体系结构及组建

    Oracle体系结构(学习笔记)

    总体结构分为三个部分:SGA,PGA,FILE文件按功能分:存储结构存储结构对应关系主要文件:数据文件:1.每个数据文件只与一个数据库相关联2.一个表空间可以包含一个或者多个数据文件3.一个数据文件只能属于一个表空间4....

    oracle数据库笔记

    第二讲 Oacle数据库体系结构 14 一. 物理存储结构——(数据库载体) 14 1.数据文件(.DBF) 14 2.日志文件 (.Log) 14 1) 日志文件 15 2) 数据库工作模式 15 3.控制文件(.ctl) 15 4.参数文件 (.ora) 16 二. ...

    oracle电子资料.CHM part1

    oracle电子资料.CHM part2地址 http://download.csdn.net/source/2636165 oracle 实用技术宝典 学习笔记 常见问答 SQL 优化 体系结构 命令参考手册 Oracle9iSQL参考 常识 DBA 培训资料

Global site tag (gtag.js) - Google Analytics