




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Oracle数据库服务器例程6.1Oracle9i内存管理6.2Oracle9i进程管理6.1Oracle9i内存管理6.1.1系统全局区(SGA)6.1.2程序全局区(PGA)6.1.1系统全局区(SGA)系统全局区是ORACLE系统为实例分配的一组共享缓冲存储区,用于存放数据库数据和控制信息,以实现对数据库数据的管理和操作。Redolog
bufferDatabuffer
cacheSharedpoolDatadict.
cacheLibrarycacheSGALargepoolJavapool共享池(sharepool)大小由SHARED_POOL_SIZE定义库缓冲包含语句文本,编译后的代码以及执行计划等字典缓冲包括表和列的定义和权限等共享池库缓冲字典缓冲库缓冲(Librarycache)库缓冲保存最近用过的SQL语句和PL/SQL使用过程中的下列信息:语句文本分析树,即编译后的语句执行计划,即优化器定义的语句执行步骤库缓冲又称为共享SQL区。由于库缓冲保存了这些信息,所以当一查询在执行计划被换出之前重新执行时,服务进程不必重新分析语句,因此库缓冲能改善应用的性能。.数据字典缓冲(DataDictionaryCache)数据字典缓冲保存最近使用过的数据字典信息如表和列的定义,用户名口令和权限。在分析阶段,服务进程查找缓冲中的信息以解释语句中指定的对象名并验证访问权限。如有必要服务进程可请求从数据文件中装入这些信息共享池大小查询在参数文件中查询初始化参数shared_pool_size查询数据字典v$parametersql>selectname,valuefromv$parameterwherenamelike'%size';使用show命令查询sql>showparametershared_pool_size数据库数据缓冲区
(DatabaseBufferCache)在oracle9i中,使用DB_BLOCK_SIZE来决定,并且可以通过下面的命令动态的改变其大小:ALTERSYSTEMSETDB_CACHE_SIZE=120M;处理查询时,服务进程在数据库缓冲区中寻找所需的数据块。如果在缓冲区中找不到所需数据块,服务进程从数据文件中将数据块读入缓冲区。以后对同样数据块的请求在内存中进行,不需物理读写。缓冲区用LRU(LeastRecentlyUsed)置换算法,在检查点发生时由DBWR写入数据文件数据缓冲区的查询如果要查询数据缓冲区的大小,可以按如下方法查找:sql>showparameterdb也可以通过动态性能视图v$buffer_cache来监视缓存的使用情况。Sql>select*fromv$buffer_cache;写数据文件数据缓冲区数据文件
Oracle服务器使用延迟、多个块写以减缓磁盘I/O的冲突:灰数据缓冲区的数量达到阈值;当进行扫描而无法找到任何空闲缓冲区时进程扫描了指定数量的块;出现超时每三秒;出现检查点(检查点是使数据库缓冲区高速缓存与数据文件同步的一种方法)日志缓冲区(LogBuffer)重做日志缓冲区用于在内存中存储未被刷新写入联机重做日志文件的重做信息。它是循环使用的缓冲区,当重做日志缓冲区填满时,将它的内容写入联机重做日志文件。重做日志缓冲区的大小是由LOG_BUFFER初始化参数决定,以字节为单位。所有服务进程(SERVERPROCESS)将重作记录写入重作日志缓冲在事务提交时由LGWR写入日志文件写日志文件日志缓冲区日志文件LGWR执行写入操作的条件是:发生提交(commit)重做日志缓冲区满度达到三分之一或3秒在DBW0将数据库缓冲区高速缓存中修改的块写入数据文件以前
写满1M因此,太大的redologbuffer是没有意义的,因为真正用于生产的时候,很少有3秒内没有提交事务的应用,而且,每到1M就会写redologfile,所以,大多数情况下,超过3M的redologbuffer几乎就浪费了。重做日志缓冲区的查询在初始化参数文件中查找log_buffer参数查询数据字典v$parametersql>selectname,valuefromv$parameterwherenamelike'%buffer';
使用show命令查询sql>showparameterlog_bufferJava池
Oracle8i引入的一项新特性(从版本后开始出现的),用于支持数据库中java的运行,负责容纳与会话有关的Java代码,以及要由Java虚拟机(JVM)用到的一些数据。大小由初始化参数文件中的java_pool_size指定大缓冲池(Largepool)这个内存结构最早是在Oracle8.0引入的,其大小由LARGE_POOL_SIZE决定,在以下情况使用:使用MTS配置时,因为要在SGA中分配UGA来保持用户的会话,就是用Large_pool来保持这个会话内存在执行并行处理语句(如并行查询)的时候,要分配进程间消息缓冲区的内存,就是用这个内存结构来协调并行处理。使用RMAN做备份的时候,要使用Large_pool这个内存结构来做磁盘I/O缓存器。程序全局区(PGA)PGA服务进程程序全局区(PGA)是一块内存区域,它包含一个服务进程或后台进程的数据和控制信息。PGA又称为进程全局区(processglobalarea),即一个进程独占的区域,在进程创建时分配,进程终止时释放,其他进程不能访问。6.2Oracle9i进程管理6.2.1Oracle服务器6.2.2服务进程6.2.3后台进程6.2.1Oracle服务器Oracle服务器是一种对象关系数据库管理系统,由Oracle实例和Oracle数据库两部分组成。SGA和后台进程合称为一个Oracle实例服务器应用/网络服务器
用户Oracle服务器6.2.2服务进程
服务器进程处理与应用程序相连的用户进程的请求,它与用户进程相通讯,为相连的用户进程的Oracle请求服务。连接数据库Server
processOracleserverUser
process服务器客户用户服务进程的特点在ORACLESERVER所在的机器上运行在专用服务配置中只对一个用户进程服务使用不同的PGA处理由客户产生的请求,并将结果返回客户
专用服务器方式
为每个用户单独开设一个服务器进程。不设置参数:MTS_SERVICEMTS_DISPATCHERSMTS_SERVERSMTS_LISTERNET_ADDRESSSGA服务器进程用户进程后台进程服务器进程用户进程专用服务器进程响应用户进程过程客户端应用程序向Oracle例程发出一个连接请求服务器上的监听程序探测到用户请求,并生成一个专用服务进程来对用户登陆信息加以确认用户执行查询操作专用进程执行用户查询操作中的所有源代码程序多线程服务器方式通过调度器为每个用户进程分配服务器进程。用户进程SGA服务器进程后台进程服务器进程用户进程用户进程调度器MTS相关的参数涵义MTS_SERVICE:服务器名,缺省值为DB_NAMEMTS_DISPATCHERS:调度器个数MTS_SERVERS:可以启动的服务器进程的个数MTS_LISTERNET_ADDRESS:SQL*NET监听器地址MTS_MAX_SERVERS:服务器进程的最大数6.2.3后台进程为了优化性能并协调多个用户,服务器进程在执行用户请求的过程中,将调用后台进程实现对数据库的操作。大部分后台进程在实例启动时自动建立。必须的后台进程DBWn PMON CKPTLGWR SMON 可选的后台进程ARCn LMDn QMNnCJQ0 LMON RECODnnn LMS Snnn LCKn Pnnn后台进程SGADBWRCKPTLGWRARCHRECOLCKnSMONSharedPoolDatabaseBufferCacheRedoLog
BufferPMONLMD0LMONDBFilesLogFilesArchiveLogsRemoteDBClusteredInstancesGMSnetworksharedmemorydiskIO数据库写入进程DBWR服务器进程在数据缓冲区中记录回退和数据块的更改。数据库写入程序(DBWn)将数据缓冲区中所有修改过的缓冲块数据写到数据文件中,它确保有足够数量的空闲缓冲区在数据缓冲区中可用。该进程在启动实例时自动启动。DBWn延迟写入事件灰数据缓冲区的数量达到阈值。当进行扫描而无法找到任何空闲缓冲区时DBWR后台进程发生超时(大约每3秒)发生检查点日志写入进程LGWR当运行DML或DDL语句时,服务器进程首先要将事务变化记载到重做日志缓冲区,然后才会将数据写入到数据缓冲区,并且重做日志缓冲区的内容将来会被写入到联机重做日志文件中,以避免系统出现意外时所带来的数据损失。将重做日志缓冲区的重做日志条目写入到联机重做日志文件的过程由后台进程LGWR来完成的。注意:直到Oracle在LGWR完成将重做信息从重做缓冲区刷新到联机重做日志文件之后,Oracle才认为一个事务已完成。在LGWR成功地将重做日志项写入联机重做文件时(并不是改变数据文件中的数据时),将一个成功码返回给服务器进程。写日志文件当提交事务处理时(Commit)当重做日志缓冲区的三分之一已满时当重做日志缓冲区中记录了超过1MB的更改时在DBWR将数据库缓冲区高速缓存中修改的块写入数据文件以前发生LGWR超时(3秒)检查点进程CKPT检查点操作是一个事件,当发生该事件时,CKPT进程会将脏缓存块写入数据文件的任务交给DBWR进程完成,并且会修改控制文件和数据文件头部(如将检查点时刻的scn值写入到控制文件和数据文件头部),这样达到了同步数据库的所有数据文件、控制文件和联机重做日志文件的目的,同时表示该进程已成功完成。检查点发生的条件当数据库管理员手动请求时。即使用SQL命令:ALTERSYSTEMCHECKPOINT当达到初始化参数LOG_CHECKPOINT_INTERVAL、LOG_CHECKPOINT_TIMEOUT和FAST_START_IO_TARGET设置时每次日志切换时(LogSwitch)当LGWR停止向一个联机重做日志文件组写入并开始向另一个联机重做日志组写入时,就发生了日志切换。当已通过正常事务处理或者立即选项关闭例程时(normal,transactional,immediate)进程监视进程PMON进程监视器进程PMON进程一方面监视着用户进程的执行情况,另一方面在用户进程断开或出现失败时还负责清除服务器进程所占用的资源。当进程失败后,PMON通过下面的方法进行清理:回退用户的当前事务处理释放当前保留的所有表锁或行锁释放用户当前保留的其它资源系统监视器进程SMON如果Oracle实例失败,则SGA中尚未写入磁盘的所有信息都会丢失。所有已经执行commit的事务但还未写入数据文件的事务中的数据是否会丢失呢?那些因为某些原因(例如出现检查点时)使得事务还未commit就被写入数据文件的数据是否会回滚呢?这一切问题都由SMON进程为我们解决。实例恢复在实例重新启动打开数据库之前,Oracle的SMON进程会自动执行实例恢复,即执行这两个时间点之间的事务操作(重做上一个时间点之后的所有已commit的事务、回滚没有commit的事务),并同步所有数据文件、控制文件和联机重做日志文件,然后才会打开数据库。该过程被称为实例恢复。当启动OracleServer时,后台进程SMON总是会检查控制文件、数据文件以及联机重做日志文件的一致性:
如果数据文件、控制文件、联机重做日志文件的当前sc
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年新高考语文复习题型专练 十三 文言虚词的意义和用法(全国适用)解析版
- 室内设计汇报方案
- 设计色彩创意美术课件
- 沈阳航空航天大学《项目管理与经济决策》2023-2024学年第二学期期末试卷
- 陕西省渭南市潼关县2025届高二物理第二学期期末考试试题含解析
- 板书设计的作用与意义
- 早产儿俯卧位通气的护理
- 陕西省宝鸡市眉县2025届数学高二第二学期期末学业质量监测试题含解析
- 郑州轨道工程职业学院《软件项目设计1》2023-2024学年第二学期期末试卷
- 宣化科技职业学院《油气田开发地质》2023-2024学年第二学期期末试卷
- 近五年安徽中考英语真题及答案2024
- 2024年高校辅导员考试题库试题及答案
- 现浇箱梁施工培训课件
- 2024年系统分析师考试的重要趋势发现:试题及答案
- 关于“高中整本书阅读教学策略”的文献综述
- 软著申请流程
- 测绘管理考试试题及答案
- 青马班面试试题及答案
- 2025年广东物理中考二轮专题复习之质量与密度(含答案)
- 2025年山东科技面试试题及答案
- 朋友出去旅游免责协议书7篇
评论
0/150
提交评论