版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第二章:Oracle实例学习目的2.1数据库实例2.2数据库内存结构2.3数据库进程2.4进程与内存的交互情况2.1数据库实例实例(Instance)是一个动态运行的概念,它是一些进程及相应内存的集合。实例(Instance)必须与特定的数据库(Database)结合,才能成为为客户端提供服务的数据库服务器。数据库启动的第二个阶段是装载(Mount)阶段,就是将数据库与实例结合到一起的过程。装载完毕后,可进一步启动到打开(Open)阶段,供客户端联机使用。总之,实例(Instance)是壳,数据库(Database)是体,两者结合,构成了Oracle服务器(OracleServer)。Oracle实例是由进程和内存构成的一个有机单元,本章从进程和内存两个方面介绍实例的基本概念和原理。oracle实例的组成2.2数据库内存结构
内存结构是Oracle存放常用信息和所有运行在该机器上的Oracle程序的内存区域。
Oracle有两种类型的内存结构:SystemGlobalArea(SGA)。在实例启动的时候分配,用于存放系统信息,所有进程共享。ProgramGlobalArea(PGA)。当服务进程(ServerProcess)启动的时候启动,用于存储特定的用户进程的信息。
2.2.1SGA系统全局区
SGA是一组为系统分配的共享的内存结构,可以包含一个数据库实例的数据或控制信息。如果多个用户连接到同一个数据库实例,在实例的SGA中,数据可以被多个用户共享,当数据库实例启动时,SGA的内存被自动分配;当数据库实例关闭时,SGA内存被回收。SGA是占用内存最大的一个区域,同时也是影响数据库性能的重要因素。固定区域(FixedSize)可变区域(VariableSize)数据库高速缓冲区缓存(Databasebuffer)重做日志缓冲区缓存(Redobuffer)2.2.1SGA系统全局区SGA包含以下几大块:固定区域(FixedSize):引导区域,存储SGA中各个组件的信息,大小不能修改可变区域(VariableSize):包括共享池、大池、JAVA池数据库高速缓冲区缓存(Databasebuffers):大小由参数db_cache_size指定。重做日志缓冲区缓存(Redobuffers):大小通常大于参数log_buffer的设置。SGA固定SGA库缓存数据字典缓存共享池数据库高速缓冲区块缓存重做日志缓冲区大池Java池(1)数据库高速缓冲区(DatabaseBuffers)
数据库高速缓冲区由DB_CACHE_SIZE参数设定,Oracle使用最近最少使用(LRU,LeastRecentlyUsed)算法来管理数据库缓冲区可用空间。当存储区需要空闲空间时,最近最少使用块将被移出,新数据块将在存储区代替它的位置,通过这种方法,将最频繁使用的数据保存在存储区中;如果SGA的大小不足以容纳所有最常使用的数据,那么,不同的对象将争用数据库缓存区中的空间;当多个应用程序共享同一个SGA时,很有可能发生这种情况。此时,每个应用的最近使用段都将与其他应用的最近使用段争夺SGA中的空间,这样,数据库缓冲区的数据请求将出现较低的命中率,导致系统性能下降。设置建议DatabaseBuffers
一般可以尽可能的大。数据库缓冲区大小可以由服务器文件spfile.ora文件中的DB_CACHE_SIZE参数设定。通过以下命令可以在SQL*PLUS中动态调整数据库缓存
ALTERSYSTEMSETDB_CACHE_SIZE=196MB(2)重做日志缓冲区SGA中也分配一片内存区用于缓存重做日志,这片内存区称为重做日志缓存。事务日志先写入重做日志缓冲区,待一定的时机由LGWR将重做日志缓存中的信息写入联机日志文件中。重做日志缓冲区的大小(以字节为单位)由LOG_BUFFER确定。logbuffer在3~5MB以内就可以了(3)共享池内存主要是为了提高系统的效率,数据已经缓存了,日志也缓存了,那么还有没有什么东西需要缓存以进一步提高系统的效率呢?有:1)最近执行的SQL声明,即执行计划2)最近使用过的数据定义,即数据字典。(3)共享池共享池是最复杂的SGA结构,它有许多子结构,我们来看看常见的几个共享池组件:(1)库缓存(LibraryCache)(2)数据字典缓存(DataDictionaryCache)(3)PL/SQL区设置建议共享池的大小取决于SHARED_POOL_SIZE,它是以字节为单位的。用户必须将这个值设得足够大,以确保有足够的可用空间来装载和存储PL/SQL块和SQL语句。但是一般要小于数据库块缓存。例如在4GB的内存服务器上,如果数据库块缓存为1.5GB,那么建议共享池为500MB。可利用如下命令进行共享池大小的动态调整:
ALTERSYSTEMSETSHARED_POOL_SIZE=64MB(4)Java池由其名字可知,Java池为Java命令提供语法分析。Java池的大小(以字节为单位)以JAVA_POOL_SIZE参数设置。JAVA_POOL_SIZE参数缺省设置为10MB。(5)大池大池(LargePool)是一个可选内存区。如果使用线程服务器选项或频繁执行备份/恢复操作,只要创建一个大池,就可以更有效地管理这些操作。大池的大小(以字节为单位)通过LARGE_POOL_SIZE参数设置,它也可以动态的调整。2.2.2PGA(程序全局区)为每个用户进程连接到数据库上时所保留的内存区当进程建立时分配当进程终止时释放仅为一个进程所使用User
processPGAServer
process服务器进程用户进程
数据区域程序全局区(PGA)用户全局区(UGA)SQL工作区会话内存私有SQL区堆栈空间哈希区位图合并区PGA程序全局区包含以下四个部分。1.堆栈空间2.哈希区3.位图合并区4.用户全局区2.3数据库进程
进程是操作系统中一个独立的可以调度的活动,用于完成指定的任务。
进程的类型:Userprocess(用户进程):在一个数据库用户请求与Oracle服务器连接时启动Serverprocess(服务器进程):与Oracleinstance(实例)相连,当一用户创建一会话时启动Backgroundprocesses(后台进程):当Oracle实例启动时启动2.3.1用户进程(UserProcess)当用户连接数据库执行一个应用程序时,会创建一个用户进程,来完成用户指定的任务。用户进程是运行在客户端的应用程序的进程。用户进程可以是SQLplus,OEM,各种开发程序开发的程序,用户进程是在用户方工作,它向服务器进程请求信息。2.3.2服务器进程(ServerProcess)
服务器进程由oracle自身创建,用于处理来自客户连接(用户进程)上的用户请求,并把处理结构传给用户进程。服务进程(ServerProcess)的类型专用服务器(DedicatedServer)多线程服务器(Multi-TheadServer)2.3.3后台进程
后台进程是在Oracle实例启动时建立的,用于优化性能和协调多用户连接通信的工作。后台为了保证Oracle数据库在任意一个时刻可以处理多用户的并发请求,进行复杂的数据操作,Oralce数据库启用了一些相互独立的附加进程,称为后台进程。服务器进程在执行用户进程请求时,调用后台进程来实现对数据库的操作。
五个最重要也是必须执行的后台进程,当数据库启动后,这五个进程自动于后台开始执行。CKPT:检查点进程LogWriter(LGWR):日志文件写入进程DatabaseWriter(DBWn):数据库写入进程SystemMonitor(SMON):系统监控进程ProcessMonitor(PMON):进程监控进程(1)DatabaseWriter(DBWn)职责:将在数据块缓存区内变动过的数据块写回到数据文件中。不是每个数据块都马上写入数据文件,而是等待满足一定的条件后,才成批的将脏数据块写入到数据文件中。写数据之前会自动触发LGWR写操作。Oracle实例SGADBWn数据库块缓存Oracle数据库数据文件
控制文件联机日志文件DBWn写入的时机发生一个检查点(checkpoint)脏数据的长度超过一定限额。当有进程需要数据库高速缓冲区却找不到空闲的缓冲区时。当所设定的时间间隔已到时。(大约每三秒)。当某个表被删除(drop)或被截断(truncate)时。当某个表空间被设置为只读状态(readonly)时。当使用类似于ALTERTABLESPACEusersBEGINBACKUP的命令对某个表空间进行联机备份时。当某个表空间被设置为脱机状态(offline)或重新设置为正常状态(normal)时等。使用如下命令列出系统目前所启动的数据库写进程的个数。(2)CKPT检查点进程负责:维护数据一致性CKPT进程触发后执行:用检查点信息修改数据文件头,改写新的scn。用检查点信息修改控制文件,改写最新的scn。在检查点时调用DBWn,通知其将缓存中的脏数据写入磁盘。ControlfilesDatafilesRedoLogfilesDatabaseInstanceSGADBWnLGWRCKPTCKPT进程触发时机用户进程任意的事务提交、任何的DDL与DCL都触发CKPT日志切换的时候SQL﹥altersystemcheckpoint
系统已更改(3)LogWriter(LGWR)职责:为了提高执行效率,将事务数据的日志信息写入在日志缓存区中,由LGWR在适当的时机将缓存区中的事务记录写入到磁盘的日志文件中。Oracle实例SGA日志缓存DBWnLGWROracle数据库数据文件
控制文件联机日志文件LGWR写入的时机当某个事务被提交时。当重做日志缓冲区中所存的记录已超过缓冲区容量的1/3时。在DBWn要将数据缓冲区的脏数据写入数据文件之前。LGWR发生超时,一般为3秒。(4)SystemMonitor(SMON)职责:实例恢复前滚打开数据库允许用户访问回滚没有提交的事务合并空闲磁盘空间释放临时段Oracle实例SGASMONOracle数据库数据文件
控制文件联机日志文件(5)ProcessMonitor(PMON)负责进程失败后的清理工作:回滚事务释放锁释放其它资源重新启动死掉的进程等Oracle实例SGAPMONPGAarea(6)归档日志进程(ARCn)可选型后台进程(backgroundprocesses)当数据库设置为归档(ARCHIVELOG)模式时,将联机重做日志文件自动地归档保留对数据库所做的所有的变化的记录ARCnArchivedredologfilesC
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年度培训班业务转让协议典范
- 2024年化工厂房租赁协议格式
- 《Flash CS6动画制作案例教程》教学课件 008
- 2024年限定区域房地产销售代理协议
- 小孩带到工厂免责协议书
- 2024年出租车承包服务协议
- 2024年化鱼苗销售协议模板
- 2024年度业务处理外包公司协议典范
- 二手车交易协议2024年样式
- 2024酒店客房预订及服务协议
- 零星维修工程施工组织设计
- 危险预知训练教材(KYT)
- ISO9001体系文件与IRIS标准条款对应表
- 汉语教师志愿者培训大纲
- SPC培训资料_2
- 压力表使用警示标识
- 小学英语课堂教学策略与方法探讨
- 2019年重庆普通高中会考通用技术真题及答案
- DB44 T 552-2008 林业生态 术语
- 天秤座小奏鸣曲,Libra Sonatine;迪安斯,Roland Dyens(古典吉他谱)
- 三国志11全人物信息(五维、特技、生卒年等)
评论
0/150
提交评论