Oracle第章数据库实例_第1页
Oracle第章数据库实例_第2页
Oracle第章数据库实例_第3页
Oracle第章数据库实例_第4页
Oracle第章数据库实例_第5页
已阅读5页,还剩48页未读 继续免费阅读

下载本文档

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

文档简介

第7章数据库实例本章内容Oracle实例概述Oracle内存结构Oracle后台进程本章要求掌握Oracle实例基本概念掌握Oracle实例的内存结构、功能及管理了解Oracle进程分类及其作用掌握Oracle后台进程、功能及管理7.1实例概述Oracle实例的概念Oracle数据库主要由放在磁盘中的物理数据库和对物理数据库进行管理的数据库管理系统。其中数据库管理系统是处于用户与物理数据库之间的一个中间层软件,又称为实例,由一系列内存结构和后台进程组成。在启动数据库时,Oracle首先在内存中获取一定的空间,启动各种用途的后台进程,即创建一个数据库实例,然后由实例装载数据文件和重做日志文件,最后打开数据库。用户操作数据库的过程实质上是与数据库实例建立连接,然后通过实例来连接、操作数据库的过程。数据库与实例的关系单实例数据库系统多实例数据库系统实例组成内存结构:系统全局区(SGA)和程序全局区(PGA)后台进程组成

处理数据的内存结构实例

后台进程

客户应用程序

服务器进程

数据库实例SGA日志缓存共享池数据字典缓冲区库缓冲区DBWRSMONPMONCKPTLGWROthers用户进程服务器进程PGA控制文件数据文件归档日志文件参数文件口令文件重做日志文件数据库数据库缓存7.2Oracle内存结构系统全局区(SystemGlobalArea,SGA)程序全局区(ProgramGlobalArea,PGA)SGASGA是由Oracle分配的共享内存结构,包含一个数据库实例共享的数据和控制信息。当多个用户同时连接同一个实例时,SGA数据可供多个用户共享,SGA又称为共享全局区(SharedGlobalArea)。用户对数据库的各种操作主要在SGA中进行。该内存区随数据库实例的创建而分配,随实例的终止而释放。PGAPGA是在用户进程连接数据库、创建一个会话时,由Oracle为用户分配的内存区域,保存当前用户私有的数据和控制信息,因此该区又称为私有全局区(PrivateGlobalArea)。每个服务器进程只能访问自己的PGA,所有服务器进程的PGA总和即为实例的PGA的大小。7.2.1SGASGA包含含的的内内存存结结构构有有::数据据高高速速缓缓冲冲区区((DatabaseBufferCache)共享池(SharedPool)重做日志缓冲冲区(RedoLogCache)大型池(LargePool)Java池(JavaPool)流池(StreamsPool)其他结构(如如固定SGA、锁管理等))(1)数据高速缓缓冲区功能存储从数据文文件中检索出出来的数据拷拷贝。应用程程序要访问的的数据必须从从磁盘的数据据文件读到数数据缓冲区中中处理。在数据缓冲区区中被修改后后的数据由数数据写入进程程写到硬盘的的数据文件中中永久保存。。提高获取和更更新数据的性性能。数据高速缓冲冲区的工作过过程缓冲块的类型型脏缓存块(DirtyBuffers)脏缓存块中保保存的是已经经被修改过的的数据。当一一条SQL语句对某个缓缓存块中的数数据进行修改改后,这个缓缓存块就被标标记为脏缓存存块。它们最最终将由DBWR进程写入数据据文件,以永永久性地保存存修改结空闲缓存块((FreeBuffers)空闲缓存块中中不包含任何何数据,它们们等待后台进进程或服务器器进程向其中中写入数据。。当Oracle从数据文件中中读取数据时时,将会寻找找空闲缓存块块,以便将数数据写入其中中命中缓存块((PinnedBuffers)正被使用,或或者被显式地地声明为保留留的缓存块。。这些缓存块块始终保留在在数据高速缓缓冲区中,不不会被换出内内存。缓存块的管理理脏缓存块列表表:包含那些些已经被修改改但还没有写写入数据文件件的脏缓存块块。LRU列表(LeastRecentlyUsed):包含所有有的空闲缓存存块、命中缓缓存块和那些些还没有来得得及移入到脏脏缓存块列表表中的脏缓存存块。在该列列表中,最近近被访问的缓缓存块被移动动到列表的头头部,而其他他缓存块向列列表尾部移动动,最近最少少被访问的缓缓存块最先被被移出LRU列表,从而保保证最频繁使使用的缓存块块始终保存在在内存中。数据高速缓冲冲区大小数据高速缓冲冲区越大,用用户需要的数数据在内存中中的可能性就就越大,即缓缓存命中率越越高,从而减减少了Oracle访问硬盘数据据的次数,提提高了数据库库系统执行的的效率。然而而,如果数据据高速缓冲区区的值太大,,Oracle就不得不在内内存中寻找更更多的块来定定位所需要的的数据,反而而降低了系统统性能。显然然需要确定一一个合理的数数据高速缓冲冲区大小。DB_CACHE_SIZE(标准块)(2)重做日志缓缓冲区功能重做日志缓冲冲区用于缓存存用户对数据据库进行修改改操作时生成成的重做记录录。为了提高工作作效率,重做做记录并不是是直接写入重重做日志文件件中,而是首首先被服务器器进程写入重重做日志缓冲冲区中,在一一定条件下,,再由日志写写入进程(LGWR)把重做日志志缓冲区的内内容写入重做做日志文件中中做永久性保保存。在归档档模式下,当当重做日志切切换时,由归归档进程(ARCH)将重做日志志文件的内容容写入归档文文件中重做日志缓冲冲区的工作过过程重做日志缓冲冲区的大小LOG_BUFFER较大的重做日日志缓冲区,,可以减少对对重做日志文文件写的次数数,适合长时时间运行的、、产生大量重重做记录的事事务。(3)共享池池功能共享池用于缓缓存最近执行行过的SQL语句、PL/SQL程序和数据字字典信息,是是对SQL语句、PL/SQL程序进行语法法分析、编译译、执行的区区域。组成库缓存库缓存用于缓缓存已经解释释并执行过包括SQL工作区和PL/SQL工作区数据字典缓存区数据字典缓存区保存最常用的数据字典信息共享池大小SHARED_POOL_SIZE合适的共享池池大小,可使使编译过的程程序代码长驻驻内存,大大大降低重复执执行相同的SQL语句、PL/SQL程序的系统开开销,从而提提高数据库的的性能。(4)大型池池功能大型池是一个个可选的内存存配置项,主主要为Oracle多线程服务器器、服务器I/O进程、数据库库备份与恢复复操作、执行行具有大量排排序操作的SQL语句、执行并并行化的数据据库操作等需需要大量缓存存的操作提供供内存空间。。如果没有在在SGA区中创建大型型池,上述操操作所需要的的缓存空间将将在共享池或或PGA中分配,因而而影响共享池池或PGA的使用效率。。大型池大小LARGE_POOL_SIZE(5)Java池功能Java提供对Java程序设计的支支持,用于存存储Java代码、Java语句的语法分分析表、Java语句的执行方方案和进行Java程序开发。Java池大小JAVA_POOL_SIZE通常不小于20M,以便安装Java虚拟机(6)流池功能流池是一个可可选的内存配配置项,用于于对流的支持持。流池大小STREAMS_POOL_SIZE7.2.2SGA的管理SGA组件大小调整整DB_CACHE_SIZELOG_BUFFERSHARED_POOL_SIZELARGE_POOL_SIZEJava_POOL_SIZESTRAMS_POOL_SIZESGA_MAX_SIZE注意除了SGA_MAX_SIZE不能修改外,,其他几个参参数可以使用用ALTERSYSTEM语句进行动态态调整。SGA自动管理在Oracle10g中,通过设置置初始化参数数SGA_TARGET,可以实现对对SGA中的数据高速速缓冲区、共共享池、大型型池、Java池和流池的自自动管理,即即这几个组件件的内存调整整不需要DBA来干预,系统统自动进行调调整。但是对对于日志缓冲冲区、非标准准块的数据高高速缓冲区、、保留池、回回收池等其他他区域的调整整还需要DBA使用ALTERSYSTEM语句手动进行行调整。设置SGA自动管理的方方法计算参数SGA_TARGET的大小SELECT((SELECTSUM(value)FROMV$SGA)-(SELECTCURRENT_SIZEFROMV$SGA_DYNAMIC_FREE_MEMORY))/1024/1024||'MB'"SGA_TARGET"FROMDUAL;设置参参数SGA_TARGET通过ALTERSYSTEM语句设设置参参数SGA_TARGET的值,,该值值可以以是((1)中计计算出出来的的结果果,也也可以以是当当前SGA大小与与SGA_MAX_SIZE之间的的某个个值。。例如如将SGA中与自自动管管理相相关的的组件件大小小设置置为0ALTERSYSTEMSETSHARED_POOL_SIZE=0;SQL>ALTERSYSTEMSETLARGE_POOL_SIZE=0;SQL>ALTERSYSTEMSETJava_POOL_SIZE=0;SQL>ALTERSYSTEMSETLARGE_POOL_SIZE=0;SQL>ALTERSYSTEMSETSTREAMS_POOL_SIZE=0;如果要要取消消自动动管理理,只只需将将参数数SGA_TARGET设置为为0即可。。7.2.3PGA功能PGA是为每每一个个与Oracle数据库库连接接的用用户保保留的的内存存区,,主要要存储储该连连接使使用的的变量量信息息和与与用户户进程程交换换的信信息。。是非非共享享的,,只有有服务务进程程本身身才能能访问问它自自己的的PGA区组成由排序序区、、会话话区、、游标标区以以及堆堆栈区区组成成排序区区主要要用于于存放放排序序操作作所产产生的的临时时数据据,其其大小小由初初始化化参数数SORT_AREA_SIZE定义;;会话话区用用于保保存用用户会会话所所具有有的权权限、、角色色、性性能统统计信信息;;游标标区用用于存存放执执行游游标操操作时时所产产生的的数据据;堆堆栈区区用于于保存存会话话过程程中的的绑定定变量量、会会话变变量等等信息息。UserprocessStackspaceSessioninformationsortarea,cursorinformationSGASharedSQLareasSGASessioninformationPGADedicatedserverSharedserverServerprocessSharedSQLareasStackspacesortarea,cursorinformation7.2.4在OEM中管理理数据据库实实例的的内存存结构构7.3Oracle后台进进程Oracle进程概概述Oracle后台进进程7.3.1Oracle进程概概述进程的的概念念进程是是操作作系统统中一一个独独立的的可以以调度度的活活动,,用于于完成成指定定的任任务。。进程程与程程序的的区别别在于于:进程是是动态态的概概念,,即动动态创创建,,完成成任务务后立立即消消亡;;而程程序是是一个个静态态实体体。进程强强调执执行过过程,,而程程序仅仅仅是是指令令的有有序集集合。。进程的的类型型用户进进程服务器器进程程后台进进程用户进进程当用户户连接接数据据库执执行一一个应应用程程序时时,会会创建建一个个用户户进程程,来来完成成用户户所指指定的的任务务。服务器器进程程服务器器进程程由Oracle自身创创建,,用于于处理理连接接到数数据库库实例例的用用户进进程所所提出出的请请求。。用户户进程程只有有通过过服务务器进进程才才能实实现对对数据据库的的访问问和操操作。。服务器器进程程分为为专用用服务务器进进程和和共享享服务务器进进程两两种。。服务器器进程程主要要完成成以下下任务务:解析并并执行行用户户提交交的SQL语句和和PL/SQL程序;;在SGA的数据据高速速缓冲冲区中中搜索索用户户进程程所要要访问问的数数据,,如果果数据据不在在缓冲冲区中中,则则需要要从硬硬盘数数据文文件中中读取取所需需的数数据,,再将将它们们复制制到缓缓冲区区中;;将用户户改变变数据据库的的操作作信息息写入入日志志缓冲冲区中中。将查询询或执执行后后的结结果数数据返返回给给用户户进程程。后台进进程后台进进程作作用为了保证证Oracle数据库在在任意一一个时刻刻可以处处理多用用户的并并发请求求,进行行复杂的的数据操操作,而而且还要要优化系系统性能能,Oracle数据库起起用了一一些相互互独立的的附加进进程,称称为后台台进程。。服务器器进程在在执行用用户进程程请求时时,调用用后台进进程来实实现对数数据库的的操作。。后台进程程主要完完成以下下任务::在内存与与磁盘之之间进行行I/O操作;监视各个个服务器器进程状状态;协调各个个服务器器进程的的任务;;维护系统统性能和和可靠性性等。7.3.2Oracle后台进程程DBWR数据库写写入进程程LGWR日志写入入进程CKPT检查点进进程SMON系统监控控进程PMON进程监控控进程ARCH归档进程程RECO恢复进程程LCKn封锁进程程Dnnn调度进程程Snnn共享服务务器进程程(1)DBWR(数据库写写入进程程)功能:数据库写写入进程程负责把把数据高高速缓冲冲区中已已经被修修改过的的数据((“脏”缓存块))成批写写入数据据文件中中永久保保存,同同时使数数据高速速缓冲区区有更多多的空闲闲缓存块块,保证证服务器器进程将将所需要要的数据据从数据据文件读读取到数数据高速速缓冲区区中,提提高缓存存命中率率。InstanceSGADatabaseBuffer

CacheDBWnControlfilesDatafilesRedologfilesDatabase启动DBWR进程执行INSERT、UPDATE等操作时时,没没有足够够的空闲闲块当检查点点发生时时,将启启动DBWR进程当数据缓缓存的LRU列表的长长度达到到初始化化DB_BLOCK_WRITE_BATCH指定值的的一半时时若发生超超时(大大约3秒未被启启动)LGWR(日志写写入进程程)功能日志写入入进程负负责把重重做日志志缓冲区区的数据据写入重重做日志志文件中中永久保保存。数据写入入进程在在工作之之前,需需要了解解日志写写入进程程是否已已经把相相关的日日志缓冲冲区中记记载的数数据写入入硬盘中中,如果果相关的的日志缓缓冲区中中的记录录还没有有被写入入,DBWR会通知LGWR完成相应应的工作作,然后后DBWR才开始写写入。InstanceSGADBWnRedoLogBufferControlfilesDatafilesRedologfilesLGWRDatabase启动LGWR进程用户通过过COMMIT语句提交交当前事事务重做日志志缓存被被写满三三分之一一DBWR进程开始始将脏缓缓存块写写入数据据文件每隔3秒,即发发生一次次超时,,将启动动LGWR事务提交交机制快速提交交组提交CKPT(检查点点进程))检查点概概念检查点是是一个事事件,当当该事件件发生时时(每隔隔一段时时间发生生),DBWR进程把数数据高速速缓冲区区中脏缓缓存块写写入数据据文件中中,同时时Oracle将对数据据库控制制文件和和数据文文件的头头部的同同步序号号进行更更新,以以记录下下当前的的数据库库结构和和状态,,保证数数据的同同步。InstanceSGADWW0RedoLogBufferLGWRInstanceSGADBWnLGWRCKPTControlfilesDatafilesRedologfilesCKPT进程的作作用更新控制制文件与与数据文文件的头头部,使使其同步步触发DBWR进程,将将脏缓存存块写入入数据文文件检查点的的级别数据库检检查点::每一次次日志切切换时,,执行一一个数据据库检查查点,DBWR进程将数数据高速速缓冲区区中的脏脏缓存块块写入数数据文件件中;表空间检检查点::当一个个表空间间设置为为脱机状状态时,,执行一一个表空空间检查查点,DBWR进程把数数据高速速缓存中中与该表表空间相相关的脏脏缓存块块写入数数据文件件中。时间检查查点:可可以设置置以时间间为基础础的检查查点,每每隔一段段时间执执行一次次检查点点。需要要为检查查点设置置一个合合适的执执行间隔隔,间隔隔太短,,将会产产生过多多的硬盘盘I/O操作;间间隔太长长,数据据库的恢恢复将耗耗费太多多时间。。检查点事事件的触触发每一个日日志切换换时当实例以以如下方方式关闭闭时NORMAL,TRANSACTION,IMMEDIATE当使用ALTERTABLESPACE[OFFLINENORMAL|READONLY|BEGINBACKUP],作用于于某个数数据文件件上的检检查点发发生时.设置以时时间为基基础的检检查点事事件当数据库库管理员员需要手手工操作作时ALTERSYSTEMCHECKPOINT与检查点点的相关关初始化化参数LOG_CHECKPOINT_INTERVAL用来指定定重做日日志文件件每写多多少操作作系统块块发生一一次检查查点事件件例如重做做日志文文件1M,系统操操作块为为1K:设置此此参数为为500,则重做做日志文文件写入入500K时,检查查点事件件发生LOG_CHECKPOINT_TIMEOUT用来指定定每隔多多长时间间发生一一次检查查点如1800,表示每每隔1800秒,如果果为0,表示此此参数无无效ELOG_CHECKPOINT_TO_ALERT用于于设设置置是是否否将将检检查查点点信信息息记记录录到到警警告告日日志志中中数数SMON(系系统统监监控控进进程程))功能能在实实例例启启动动时时负负责责对对数数据据库库进进行行恢恢复复;;回收收不不再再使使用用的的临临时时空空间间。。将各各个个表表空空间间的的空空闲闲碎碎片片合合并并((表表空空间间的的存存储储参参数数PCTINCREASE不为为0时))。。InstanceSGASMONControlfilesDatafilesRedologfilesInstanceSGASMONDatabasePMON(进进程程监监控控进进程程))功能能负责责恢恢复复失失败败的的用用户户进进程程或或服服务务器器进进程程,,并并且且释释放放进进程程所所占占用用的的资资源源;;清除除非非正正常常中中断断的的用用户户进进程程留留下下的的孤孤儿儿会会话话,,回回退退未未提提交交的的事事务务,,释释放放会会话话所所占占用用的的锁锁、、SGA、PGA等资资源源;;监控控调调度度进进程程和和服服务务器器进进程程的的状状态态,,如如果果它它们们失失败败,,则则尝尝试试重重新新启启动动它它们们,,并并释释放放它它们们所所占占用用的的各各种种资资源源。。InstanceSGAPMONPGAareaARCH(归归档档进进程程))功能能归档档进进程程负负责责在在日日志志切切换换后后将将已已经经写写满满的的重重做做日日志志文文件件复复制制到到归归档档目目标标中中,,防防止止写写满满的的重重做做日日志志文文件件被被覆覆盖盖最多多可可启启动动10个归归档档进进程程((ARC0-ARC9)RECO(恢恢复复进进程程))功能能RECO进程程负负责责在在分分布布式式数数据据库库环环境境中中自自动动解解决决分分布布式式事事务务的的故故障障。。一一个个节节点点的的RECO自动动解解决决所所有有的的悬悬而而未未决决的的事事务务。。当当一一个个数数据据库库服服务务器器的的RECO后台台进进程程试试图图建建立立同同一一远远程程服服务务器器的的通通信信,,如如果果该该远远程程服服务务器器不不可可用用或或者者网网络络连连接接不不能能建建立

温馨提示

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

评论

0/150

提交评论