《《数据库实例》PPT课件.ppt》由会员分享,可在线阅读,更多相关《《数据库实例》PPT课件.ppt(61页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、Oracle10g数据库基础教程2011第第8章章 数据库实例数据库实例Oracle10g数据库基础教程2011本章内容本章内容pOracle实例概述 pOracle内存结构pOracle后台进程2Oracle10g数据库基础教程2011本章要求本章要求p掌握Oracle实例基本概念p掌握Oracle实例的内存结构、功能及管理p了解Oracle进程分类及其作用p掌握Oracle后台进程、功能及管理3Oracle10g数据库基础教程20118.1实例概述实例概述pOracle实例的概念nOracleOracle数据库数据库主要由两部分构成:主要由两部分构成:放在磁盘中的放在磁盘中的物理数据库物理
2、数据库和对物理数据库进行管理的和对物理数据库进行管理的数据库管理系统数据库管理系统。其中数据库管理系统是处于用户与物理数据库之间的其中数据库管理系统是处于用户与物理数据库之间的一个中间层软件,又称为一个中间层软件,又称为实例实例,由一系列内存结构和后台由一系列内存结构和后台进程组成进程组成。n在在启动数据库启动数据库时,时,OracleOracle首先在内存中获取一定的空间,首先在内存中获取一定的空间,启动各种用途的后台进程启动各种用途的后台进程,即,即创建创建一个数据库一个数据库实例实例,然后,然后由实例装载数据文件和重做日志文件,最后打开数据库。由实例装载数据文件和重做日志文件,最后打开数
3、据库。用户用户操作数据库操作数据库的过程实质上是的过程实质上是与数据库实例建立连接与数据库实例建立连接,然后通过实例来连接、操作数据库的过程。然后通过实例来连接、操作数据库的过程。4Oracle10g数据库基础教程2011p数据库与实例的关系n 单实例单实例数据库系统数据库系统 多实例多实例数据库系统数据库系统 5Oracle10g数据库基础教程2011ORACLE实例与数据库的区别p实例就是一组操作系统进程(或者是一个多线程的进程)以及一些内存。这些进程可以操作数据库;而数据库只是一个文件集合(包括数据文件、临时文件、重做日志文件和控制文件)。在任何时刻,一个实例只能有一组相关的文件(与一个
4、数据库关联)。大多数情况下,反过来也成立:一个数据库上只有一个实例对其进行操作。不过,Oracle的真正应用集群(RealApplicationClusters,RAC)是一个例外,这是Oracle提供的一个选项,允许在集群环境中的多台计算机上操作,这样就可以有多台实例同时装载并打开一个数据库(位于一组共享物理磁盘上)。由此,我们可以同时从多台不同的计算机访问这个数据库。OracleRAC能支持高度可用的系统,可用于构建可扩缩性极好的解决方案。6Oracle10g数据库基础教程2011p实例组成n内存结构内存结构:系统全局区(:系统全局区(SGA)和程序全局区()和程序全局区(PGA)n后台进
5、程后台进程组成组成 7Oracle10g数据库基础教程2011 处理数据的内存结构处理数据的内存结构实实 例例 后后 台台 进进 程程 客户应用程序 服务器进程 数据库数据库8Oracle10g数据库基础教程2011实例实例SGA日志缓存日志缓存共享池共享池数据字典数据字典缓冲区缓冲区库缓冲区库缓冲区DBWRSMONPMONCKPTLGWROthers用户进程用户进程服务器进程服务器进程PGA控制文件控制文件数据文数据文件件 归档日志归档日志文件文件参数文件参数文件口令文件口令文件重做日志重做日志文件文件数据库数据库数据库缓存数据库缓存9Oracle10g数据库基础教程20118.2 Orac
6、le内存结构内存结构p系统全局区(SystemGlobalArea,SGA)p程序全局区(ProgramGlobalArea,PGA)10Oracle10g数据库基础教程2011pSGAnSGA是由是由Oracle分配的分配的共享内存结构共享内存结构,包含一个数据库实例共享,包含一个数据库实例共享的数据和控制信息。当多个用户同时连接同一个实例时,的数据和控制信息。当多个用户同时连接同一个实例时,SGA数数据可供多个用户共享,据可供多个用户共享,SGA又称为共享全局区又称为共享全局区(Shared Global Area)。用户对数据库的各种操作主要在)。用户对数据库的各种操作主要在SGA中进行
7、。中进行。该内存区随数据库实例的创建而分配,随实例的终止而释放。该内存区随数据库实例的创建而分配,随实例的终止而释放。pPGAnPGA是在是在用户用户进程进程连接数据库、创建一个会话连接数据库、创建一个会话时,由时,由Oracle为用为用户分配的户分配的内存区域内存区域,保存当前用户,保存当前用户私有的数据私有的数据和控制信息,因此该和控制信息,因此该区又称为区又称为私有全局区(私有全局区(Private Global Area)。每个服务器进)。每个服务器进程只能访问自己的程只能访问自己的PGA,所有服务器进程的,所有服务器进程的PGA总和即为实例的总和即为实例的PGA的大小。的大小。11O
8、racle10g数据库基础教程20118.2.1 SGApSGA包含的内存结构有:n数据高速缓冲区数据高速缓冲区(Database Buffer Cache)n共享池共享池(Shared Pool)n重做日志缓冲区重做日志缓冲区(Redo Log Cache)n大型池大型池(Large Pool)nJava池池(Java Pool)n流池流池(Streams Pool)n其他结构(如固定其他结构(如固定SGA、锁管理等)、锁管理等)12Oracle10g数据库基础教程2011(1)数据高速缓冲区数据高速缓冲区p功能n存储从数据文件中检索出来的数据拷贝。存储从数据文件中检索出来的数据拷贝。应用应
9、用程序要访问的数据程序要访问的数据必须从磁盘的数据文件必须从磁盘的数据文件读到读到数据缓冲区数据缓冲区中处理。中处理。n在数据缓冲区中在数据缓冲区中被修改后被修改后的数据由的数据由数据写入进数据写入进程写到程写到硬盘的数据文件中永久保存。硬盘的数据文件中永久保存。n提高获取和更新数据的性能。提高获取和更新数据的性能。13Oracle10g数据库基础教程2011p数据高速缓冲区的工作过程14Oracle10g数据库基础教程2011p缓冲块的类型n脏缓存块脏缓存块(Dirty Buffers)p脏缓存块中保存的是已经被修改过的数据。当一条SQL语句对某个缓存块中的数据进行修改后,这个缓存块就被标记
10、为脏缓存块。它们最终将由DBWR进程写入数据文件,以永久性地保存修改结n空闲缓存块空闲缓存块(Free Buffers)p空闲缓存块中不包含任何数据,它们等待后台进程或服务器进程向其中写入数据。当Oracle从数据文件中读取数据时,将会寻找空闲缓存块,以便将数据写入其中n命中缓存块命中缓存块(Pinned Buffers)p正被使用,或者被显式地声明为保留的缓存块。这些缓存块始终保留在数据高速缓冲区中,不会被换出内存。15Oracle10g数据库基础教程201116Oracle10g数据库基础教程2011p缓存块的管理n脏缓存块列表脏缓存块列表:包含那些:包含那些已经被修改已经被修改但还但还没
11、有写入没有写入数数据文件的脏缓存块。据文件的脏缓存块。nLRU列表列表(Least Recently Used):包含所有的):包含所有的空闲缓存块、命中缓存块和那些还没有来得及移入到空闲缓存块、命中缓存块和那些还没有来得及移入到脏缓存块列表中的脏缓存块。在该列表中,最近被访脏缓存块列表中的脏缓存块。在该列表中,最近被访问的缓存块被移动到列表的头部,而其他缓存块向列问的缓存块被移动到列表的头部,而其他缓存块向列表尾部移动,表尾部移动,最近最少被访问最近最少被访问的缓存块最先被移出的缓存块最先被移出LRU列表,从而保证最频繁使用的缓存块始终保存在列表,从而保证最频繁使用的缓存块始终保存在内存中。
12、内存中。17Oracle10g数据库基础教程201118Oracle10g数据库基础教程2011p数据高速缓冲区大小数据高速缓冲区大小n数据高速缓冲区越大,用户需要的数据在内存中的可能性就越大,即缓存命中率越高,从而减少了Oracle访问硬盘数据的次数,提高了数据库系统执行的效率。然而,如果数据高速缓冲区的值太大,Oracle就不得不在内存中寻找更多的块来定位所需要的数据,反而降低了系统性能。显然需要确定一个合理的数据高速缓冲区大小。nDB_CACHE_SIZE(标准块)19Oracle10g数据库基础教程2011(2)重做日志缓冲区重做日志缓冲区p功能n重做日志缓冲区用于重做日志缓冲区用于缓
13、存缓存用户对数据库进行用户对数据库进行修改修改操作操作时时生成的重做记录生成的重做记录。n为了提高工作效率,为了提高工作效率,重做记录重做记录并不是直接写入重做日并不是直接写入重做日志文件中,而是首先被服务器进程志文件中,而是首先被服务器进程写入重做日志缓冲写入重做日志缓冲区区中,在一定条件下,再由日志写入进程(中,在一定条件下,再由日志写入进程(LGWR)把重做日志缓冲区的内容写入重做日志文件中做永久把重做日志缓冲区的内容写入重做日志文件中做永久性保存。在性保存。在归档模式归档模式下,当重做日志切换时,由归档下,当重做日志切换时,由归档进程(进程(ARCH)将重做日志文件的内容)将重做日志文
14、件的内容写入归档文件写入归档文件中中 20Oracle10g数据库基础教程2011p重做日志缓冲区的工作过程21Oracle10g数据库基础教程2011p重做日志缓冲区的大小nLOG_BUFFERn较大的重做日志缓冲区,可以减少对重做日志文件写较大的重做日志缓冲区,可以减少对重做日志文件写的次数,适合长时间运行的、产生大量重做记录的事的次数,适合长时间运行的、产生大量重做记录的事务。务。22Oracle10g数据库基础教程2011()()共享池共享池p功能n共享池用于共享池用于缓存最近执行过缓存最近执行过的的SQL语句、语句、PL/SQL程程序和数据字典信息,是对序和数据字典信息,是对SQL语
15、句、语句、PL/SQL程序进程序进行语法分析、编译、执行的区域。行语法分析、编译、执行的区域。p组成n库缓存库缓存p库缓存用于缓存已经解释并执行过的SQL语句和PL/SQL程序代码,以提高SQL或PL/SQL程序的执行效率。p包括SQL工作区和PL/SQL工作区 n数据字典缓存数据字典缓存区区p数据字典缓存区保存最常用的数据字典信息23Oracle10g数据库基础教程2011p共享池大小nSHARED_POOL_SIZE n合适合适的共享池大小,可使的共享池大小,可使编译过的程序代码长驻内存编译过的程序代码长驻内存,大大降低重复执行相同的大大降低重复执行相同的SQL语句、语句、PL/SQL程序
16、的系程序的系统开销,从而提高数据库的性能。统开销,从而提高数据库的性能。24Oracle10g数据库基础教程2011()()大型池大型池 p功能n大型池是一个大型池是一个可选的可选的内存配置项,主要为内存配置项,主要为Oracle多线多线程服务器、服务器程服务器、服务器I/O进程、数据库备份与恢复操作、进程、数据库备份与恢复操作、执行具有大量排序操作的执行具有大量排序操作的SQL语句、执行并行化的数语句、执行并行化的数据库操作等需要大量缓存的操作提供内存空间。如果据库操作等需要大量缓存的操作提供内存空间。如果没有没有在在SGA区中创建大型池,区中创建大型池,上述操作上述操作所需要的缓存所需要的
17、缓存空间将在空间将在共享池或共享池或PGA中分配中分配,因而影响共享池或,因而影响共享池或PGA的使用效率。的使用效率。p大型池大小nLARGE_POOL_SIZE25Oracle10g数据库基础教程2011()()Java池池 p功能nJava提供对提供对Java程序设计的支持,用于存储程序设计的支持,用于存储Java代代码、码、Java语句的语法分析表、语句的语法分析表、Java语句的执行方案语句的执行方案和进行和进行Java程序开发。程序开发。pJava池大小nJAVA_POOL_SIZEn通常不小于通常不小于20M,以便安装,以便安装Java虚拟机虚拟机 26Oracle10g数据库基
18、础教程2011(6)流池流池 p功能n流池是一个流池是一个可选可选的内存配置项,用于对的内存配置项,用于对流流的支持。的支持。p流池大小nSTREAMS_POOL_SIZE 27Oracle10g数据库基础教程20118.2.2 SGA的管理的管理pSGA组件大小调整nDB_CACHE_SIZEnLOG_BUFFERnSHARED_POOL_SIZEnLARGE_POOL_SIZEnJava_POOL_SIZEn STRAMS_POOL_SIZEnSGA_MAX_SIZEp注意n除了除了SGA_MAX_SIZE不能修改外,其他几个参数可不能修改外,其他几个参数可以使用以使用ALTER SYST
19、EM语句进行动态调整。语句进行动态调整。28Oracle10g数据库基础教程2011pSGA自动管理n在在Oracle 10g中,通过设置初始化参数中,通过设置初始化参数SGA_TARGET,可以实现对,可以实现对SGA中的数据高速缓冲中的数据高速缓冲区、共享池、大型池、区、共享池、大型池、Java池和流池的池和流池的自动管理自动管理,即,即这几个组件的内存调整不需要这几个组件的内存调整不需要DBA来干预,系统自动来干预,系统自动进行调整。但是对于日志缓冲区、非标准块的数据高进行调整。但是对于日志缓冲区、非标准块的数据高速缓冲区、保留池、回收池等其他区域的调整还需要速缓冲区、保留池、回收池等其
20、他区域的调整还需要DBA使用使用ALTER SYSTEM语句手动进行调整。语句手动进行调整。29Oracle10g数据库基础教程2011p设置SGA自动管理的方法n计算参数计算参数SGA_TARGET的大小的大小 pSELECT(SELECTSUM(value)FROMV$SGA)-p(SELECTCURRENT_SIZEFROMpV$SGA_DYNAMIC_FREE_MEMORY)/1024/1024|MBSGA_TARGETFROMDUAL;n设置参数设置参数SGA_TARGETp通过ALTERSYSTEM语句设置参数SGA_TARGET的值,该值可以是(1)中计算出来的结果,也可以是当前
21、SGA大小与SGA_MAX_SIZE之间的某个值。例如n将将SGA中与自动管理相关的组件大小设置为中与自动管理相关的组件大小设置为0 30Oracle10g数据库基础教程201131Oracle10g数据库基础教程201132Oracle10g数据库基础教程2011nSQLALTER SYSTEM SET SHARED_POOL_SIZE=0;nSQLALTER SYSTEM SET LARGE_POOL_SIZE=0;nSQLALTER SYSTEM SET Java_POOL_SIZE=0;nSQLALTER SYSTEM SET LARGE_POOL_SIZE=0;nSQLALTER S
22、YSTEM SET STREAMS_POOL_SIZE=0;p如果要取消自动管理,只需将参数SGA_TARGET设置为0即可。33Oracle10g数据库基础教程20118.2.3 PGAp功能nPGA 是为每一个与是为每一个与Oracle数据库连接的数据库连接的用户保留的内存区用户保留的内存区,主,主要存储该连接使用的要存储该连接使用的变量信息变量信息和与用户进程和与用户进程交换的信息交换的信息。是非共是非共享的,享的,只有服务进程本身才能访问它自己的只有服务进程本身才能访问它自己的PGA区区p组成n由由排序区排序区、会话区会话区、游标区游标区以及以及堆栈区堆栈区组成组成 n排序区排序区主要
23、用于存放排序操作所产生的主要用于存放排序操作所产生的临时数据临时数据,其大小由初始,其大小由初始化参数化参数SORT_AREA_SIZE定义;定义;会话区会话区用于保存用户会话所用于保存用户会话所具有的具有的权限、角色、性能统计权限、角色、性能统计信息;信息;游标区游标区用于存放执行游标操用于存放执行游标操作时所产生的数据;作时所产生的数据;堆栈区堆栈区用于保存会话过程中的用于保存会话过程中的绑定变量绑定变量、会会话变量话变量等信息。等信息。34Oracle10g数据库基础教程2011Userprocess StackspaceSession informationsort area,curs
24、or informationSGAShared SQL areasSGASessioninformation PGA Dedicated server Shared server ServerprocessShared SQL areasStackspacesort area,cursor information35共享服务器进程专用服务器进程Oracle10g数据库基础教程201136Oracle10g数据库基础教程2011在在OEM中管理数据库实例的内存结构中管理数据库实例的内存结构37Oracle10g数据库基础教程201138Oracle10g数据库基础教程201139Oracle10
25、g数据库基础教程20118.3 Oracle后台进程后台进程pOracle进程概述pOracle后台进程40Oracle10g数据库基础教程20118.3.1 Oracle进程进程概述概述p进程的概念n进程是操作系统中一个进程是操作系统中一个独立的可以调度的活动独立的可以调度的活动,用于,用于完成指定的任务。进程与程序的区别在于:完成指定的任务。进程与程序的区别在于:n进程是动态进程是动态的概念,即动态创建,完成任务后立即消的概念,即动态创建,完成任务后立即消亡;而亡;而程序是一个静态程序是一个静态实体。实体。n进程强调执行过程,而程序仅仅是指令的有序集合。进程强调执行过程,而程序仅仅是指令的
26、有序集合。p进程的类型n用户进程用户进程n服务器进程服务器进程n后台进程后台进程 41Oracle10g数据库基础教程2011p用户进程 n当用户连接数据库执行一个应用程序时,会创建一个用户进程,来完成用户所指定的任务。p服务器进程 n服务器进程由Oracle自身创建,用于处理连接到数据库实例的用户进程所提出的请求。用户进程只有通过服务器进程才能实现对数据库的访问和操作。n服务器进程分为专用服务器进程和共享服务器进程两种。n服务器进程主要完成以下任务:p解析并执行解析并执行用户提交的用户提交的SQL语句和语句和PL/SQL程序;程序;p在在SGA的数据高速缓冲区中的数据高速缓冲区中搜索搜索用户
27、进程所要访问的用户进程所要访问的数据数据,如果数,如果数据不在缓冲区中,则需要从据不在缓冲区中,则需要从硬盘数据文件中硬盘数据文件中读取所需的数据,再将它读取所需的数据,再将它们们复制到缓冲区中复制到缓冲区中;p将用户将用户改变数据库的操作信息写入日志改变数据库的操作信息写入日志缓冲区中。缓冲区中。p将查询或执行后的将查询或执行后的结果数据返回给用户结果数据返回给用户进程。进程。42Oracle10g数据库基础教程2011p如何查看是否是共享服务器模式?p查看共享服务器进程数SQLshowparametershared_servers;pNAMETYPEVALUE-max_shared_ser
28、versinteger20shared_serversinteger1p43Oracle10g数据库基础教程2011p后台进程后台进程 n后台进程后台进程作用作用p为了保证为了保证Oracle数据库在任意一个时刻可以数据库在任意一个时刻可以处理多用户的并处理多用户的并发请求发请求,进行复杂的数据操作,而且还要优化系统性能,进行复杂的数据操作,而且还要优化系统性能,Oracle数据库起用了一些数据库起用了一些相互独立的附加进程相互独立的附加进程,称为后台进,称为后台进程。程。服务器进程服务器进程在执行用户进程请求时,在执行用户进程请求时,调用后台进程调用后台进程来实现来实现对数据库的操作。对数据
29、库的操作。n后台进程主要后台进程主要完成以下任务完成以下任务:p在内存与磁盘之间进行在内存与磁盘之间进行I/O操作操作;p监视监视各个服务器进程状态;各个服务器进程状态;p协调协调各个服务器进程的任务;各个服务器进程的任务;p维护维护系统性能和可靠性等。系统性能和可靠性等。44Oracle10g数据库基础教程2011后台进程后台进程pDBWR数据库写入进程pLGWR日志写入进程pCKPT检查点进程pSMON系统监控进程pPMON进程监控进程pARCH归档进程pRECO恢复进程pLCKn封锁进程pDnnn调度进程pSnnn共享服务器进程45Oracle10g数据库基础教程2011(1)DBWR(
30、数据库写入进程数据库写入进程)n功能:数据库写入进程负责把数据高速缓冲区中已经被修改过的数据(“脏”缓存块)成批写入数据文件中永久保存,同时使数据高速缓冲区有更多的空闲缓存块,保证服务器进程将所需要的数据从数据文件读取到数据高速缓冲区中,提高缓存命中率。InstanceSGADatabaseBufferCacheDBWRControl filesData files Redo log filesDatabase46Oracle10g数据库基础教程2011p启动DBWR进程n执行执行INSERT、UPDATE等操作时等操作时,没有足够没有足够的空的空闲块闲块n当当检查点发生检查点发生时,将启动时
31、,将启动DBWR进程进程 n当数据缓存的当数据缓存的LRU(LeastRecentlyUsed最少使用算法)列表的长度达到初始化)列表的长度达到初始化 DB_BLOCK_WRITE_BATCH指定值的指定值的一半时一半时 n若发生超时(大约若发生超时(大约3秒未被启动)秒未被启动)47Oracle10g数据库基础教程2011LGWR(日志写入进程日志写入进程)p功能n日日志志写写入入进进程程负负责责把把重重做做日日志志缓缓冲冲区区的的数数据据写写入入重重做做日日志志文文件件中永久保存。中永久保存。n数数据据写写入入进进程程在在工工作作之之前前,需需要要了了解解日日志志写写入入进进程程是是否否已
32、已经经把把相相关关的的日日志志缓缓冲冲区区中中记记载载的的数数据据写写入入硬硬盘盘中中,如如果果相相关关的的日日志志缓缓冲冲区区中中的的记记录录还还没没有有被被写写入入,DBWR会会通通知知LGWR完完成成相相应应的的工工作作,然然后后DBWR才开始写入才开始写入。InstanceSGADBWRRedo LogBufferControl filesData files Redo log filesLGWRDatabase48Oracle10g数据库基础教程2011p启动LGWR进程n用户通过用户通过COMMIT语句提交当前事务语句提交当前事务n重做日志缓存被重做日志缓存被写满三分之一写满三分之
33、一nDBWR进程进程开始将脏缓存块写入开始将脏缓存块写入数据文件数据文件n每隔每隔3秒,即发生一次超时,将启动秒,即发生一次超时,将启动LGWR p事务提交机制n快速提交快速提交n组提交组提交 49Oracle10g数据库基础教程2011CKPT(检查点进程检查点进程)p检查点概念检查点是一个事件,当该事件发生时(每隔一段时间发生),DBWR进程把数据高速缓冲区中脏缓存块写入数据文件中,同时Oracle将对数据库控制文件和数据文件的头部的同步序号进行更新,以记录下当前的数据库结构和状态,保证数据的同步。InstanceSGADWW0Redo LogBufferLGWRInstanceSGADB
34、WnLGWRCKPTControl filesData files Redo log files50Oracle10g数据库基础教程2011pCKPT进程的作用n更新更新控制文件与数据文件的控制文件与数据文件的头部头部,使其,使其同步同步n触发触发DBWR进程,将脏缓存块写入数据文件进程,将脏缓存块写入数据文件p检查点的级别n数据库检查点数据库检查点:每一次:每一次日志切换日志切换时,执行一个数据库检查点,时,执行一个数据库检查点,DBWR进程将数据高速缓冲区中的脏缓存块进程将数据高速缓冲区中的脏缓存块写入写入数据文件中;数据文件中;n表空间检查点表空间检查点:当一个表空间设置为:当一个表空间
35、设置为脱机状态时脱机状态时,执行一个表空,执行一个表空间检查点,间检查点,DBWR进程把数据高速缓存中与进程把数据高速缓存中与该表空间相关该表空间相关的脏缓的脏缓存块存块写入写入数据文件中。数据文件中。n时间检查点时间检查点:可以设置以时间为基础的检查点,:可以设置以时间为基础的检查点,每隔一段时间每隔一段时间执执行一次检查点。需要为检查点设置一个合适的执行间隔,行一次检查点。需要为检查点设置一个合适的执行间隔,间隔太间隔太短短,将会产生,将会产生过多的硬盘过多的硬盘I/O操作;操作;间隔太长间隔太长,数据库的,数据库的恢复将恢复将耗费太多时间。耗费太多时间。51Oracle10g数据库基础教
36、程2011p检查点事件的触发n每一个每一个日志切换日志切换时时n当当实例以如下方式关闭实例以如下方式关闭时时pNORMAL,TRANSACTION,IMMEDIATEn当使用当使用 ALTER TABLESPACE OFFLINE NORMAL|READ ONLY|BEGIN BACKUP,作,作用于某个数据文件上的检查点发生时用于某个数据文件上的检查点发生时.n设置以设置以时间时间为基础的检查点事件为基础的检查点事件n当数据库管理员需要当数据库管理员需要手工手工操作时操作时pALTERSYSTEMCHECKPOINT52Oracle10g数据库基础教程2011p与检查点的相关初始化参数nLO
37、G_CHECKPOINT_INTERVALp用来指定重做日志文件每写多少操作系统块发生一次检查点事件p例如重做日志文件1M,系统操作块为1K:设置此参数为500,则重做日志文件写入500K时,检查点事件发生nLOG_CHECKPOINT_TIMEOUTp用来指定每隔多长时间发生一次检查点p如1800,表示每隔1800秒,如果为0,表示此参数无效nLOG_CHECKPOINT_TO_ALERTp用于设置是否将检查点信息记录到警告日志中53Oracle10g数据库基础教程2011SMON(系统监控进程系统监控进程)p功能n在实例启动时负责对在实例启动时负责对数据库进行数据库进行恢复恢复;n回收回收
38、不再使用的临时不再使用的临时空间。空间。n将各个表空间的空闲将各个表空间的空闲碎片合并碎片合并(表空间的(表空间的存储参数存储参数PCTINCREASE不不为为0时)。时)。InstanceSGASMONControl filesData files Redo log filesInstanceSGASMONDatabase54Oracle10g数据库基础教程2011PMON(进程监控进程进程监控进程)p功能n负责负责恢复失败的用户进程恢复失败的用户进程或服务器进程或服务器进程,并且,并且释放释放进程所占用的资源;进程所占用的资源;n清除清除非正常中断的用户进非正常中断的用户进程留下的程留下的
39、孤儿会话孤儿会话,回退回退未提交的事务,未提交的事务,释放释放会话会话所占用的锁、所占用的锁、SGA、PGA等资源;等资源;n监控调度进程和服务器进监控调度进程和服务器进程的状态程的状态,如果它们失败,如果它们失败,则尝试重新启动它们,并则尝试重新启动它们,并释放它们所占用的各种资释放它们所占用的各种资源。源。InstanceSGAPMONPGA area55Oracle10g数据库基础教程2011ARCH(归档进程归档进程)p功能n归档进程负责在日志切换后归档进程负责在日志切换后将已经写满将已经写满的重做日志文件的重做日志文件复制到复制到归档归档目标中,防止写满的重做日志文件被覆盖目标中,防
40、止写满的重做日志文件被覆盖p最多可启动10个归档进程(ARC0ARC9)56Oracle10g数据库基础教程2011RECO(恢复进程)(恢复进程)p功能nRECO进程负责在进程负责在分布式数据库环境中分布式数据库环境中自动自动解决分布解决分布式事务的故障式事务的故障。一个节点的。一个节点的RECO自动解决所有的悬自动解决所有的悬而未决的事务。当一个数据库服务器的而未决的事务。当一个数据库服务器的RECO后台进后台进程试图建立同一远程服务器的通信,如果该程试图建立同一远程服务器的通信,如果该远程服务远程服务器不可用或者网络连接不能建立器不可用或者网络连接不能建立时,时,RECO自动地在自动地在
41、一个时间间隔之后一个时间间隔之后再次连接。当且仅当数据库配置为再次连接。当且仅当数据库配置为分布式事务处理,且初始化参数分布式事务处理,且初始化参数DISTRIBUTED_TRANSACTIONS的值大于的值大于0时,时,RECO进程才会自动启动。进程才会自动启动。57Oracle10g数据库基础教程2011LCKn(锁进程)(锁进程)p功能nLCKn进程用于进程用于Oracle并行服务器环境并行服务器环境中。在数据库中。在数据库中最多可以启动中最多可以启动10个个LCKn进程,主要用于进程,主要用于实例间的实例间的封锁。封锁。58Oracle10g数据库基础教程2011Dnnn(调度进程)(
42、调度进程)p功能nDnnn进程是进程是多线程服务器多线程服务器(Multithreaded Server,MTS)的组成部分,以后台进程的形式运)的组成部分,以后台进程的形式运行。调度进程接受行。调度进程接受用户进程请求用户进程请求,将它们,将它们放入请求队放入请求队列中列中,然后为请求队列中的用户进程,然后为请求队列中的用户进程分配一个服务器分配一个服务器进程。进程。最后,从响应队列返回数据给用户进程最后,从响应队列返回数据给用户进程 59Oracle10g数据库基础教程2011SGA(System Global Area)共享共享SQL区区共享池共享池数据库缓冲存储区数据库缓冲存储区日志缓冲区日志缓冲区数据字典数据字典Server ProcessUser ProcessDBWRPMONCKPTLGWRSMONARCHDatafilesControl FilesRedo Log Files归档60Oracle10g数据库基础教程2011小节小节p数据库实例的概念p实例内存区的组成与功能pSGA的组成、功能及其管理p实例后台进程的分类与功能61