数据库实例概述

上传人:花****园 文档编号:243460180 上传时间:2024-09-23 格式:PPT 页数:52 大小:357KB
返回 下载 相关 举报
数据库实例概述_第1页
第1页 / 共52页
数据库实例概述_第2页
第2页 / 共52页
数据库实例概述_第3页
第3页 / 共52页
点击查看更多>>
资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,Oracle 10g,数据库基础教程,Oracle 10g,数据库基础教程,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,第,7,章 数据库实例,本章内容,Oracle,实例概述,Oracle,内存结构,Oracle,后台进程,本章要求,掌握,Oracle,实例基本概念,掌握,Oracle,实例的内存结构、功能及管理,了解,Oracle,进程分类及其作用,掌握,Oracle,后台进程、功能及管理,7.1,实例概述,Oracle,实例的概念,Oracle,数据库主要由放在磁盘中的物理数据库和对物理数据库进行管理的数据库管理系统。其中数据库管理系统是处于用户与物理数据库之间的一个中间层软件,又称为实例,由一系列内存结构和后台进程组成。,在启动数据库时,,Oracle,首先在内存中获取一定的空间,启动各种用途的后台进程,即创建一个数据库实例,然后由实例装载数据文件和重做日志文件,最后打开数据库。用户操作数据库的过程实质上是与数据库实例建立连接,然后通过实例来连接、操作数据库的过程。,数据库与实例的关系,单实例数据库系统 多实例数据库系统,实例组成,内存结构:系统全局区(,SGA,)和程序全局区(,PGA,),后台进程组成,处理数据的内存结构,实 例,后 台 进 程,客户应用程序,服务器进程,数据库,实例,SGA,日志缓存,共享池,数据字典,缓冲区,库缓冲区,DBWR,SMON,PMON,CKPT,LGWR,Others,用户进程,服务器进程,PGA,控制文件,数据文件,归档日志,文件,参数文件,口令文件,重做日志,文件,数据库,数据库缓存,7.2 Oracle,内存结构,系统全局区(,System Global Area,,,SGA,),程序全局区(,Program Global Area,,,PGA,),SGA,SGA,是由,Oracle,分配的共享内存结构,包含一个数据库实例共享的数据和控制信息。当多个用户同时连接同一个实例时,,SGA,数据可供多个用户共享,,SGA,又称为共享全局区(,Shared Global Area,)。用户对数据库的各种操作主要在,SGA,中进行。该内存区随数据库实例的创建而分配,随实例的终止而释放。,PGA,PGA,是在用户进程连接数据库、创建一个会话时,由,Oracle,为用户分配的内存区域,保存当前用户私有的数据和控制信息,因此该区又称为私有全局区(,Private Global Area,)。每个服务器进程只能访问自己的,PGA,,所有服务器进程的,PGA,总和即为实例的,PGA,的大小。,7.2.1 SGA,SGA,包含的内存结构有:,数据高速缓冲区(,Database Buffer Cache,),共享池(,Shared Pool,),重做日志缓冲区(,Redo Log Cache,),大型池(,Large Pool,),Java,池(,Java Pool,),流池(,Streams Pool,),其他结构(如固定,SGA,、锁管理等),(,1,)数据高速缓冲区,功能,存储从数据文件中检索出来的数据拷贝。应用程序要访问的数据必须从磁盘的数据文件读到数据缓冲区中处理。,在数据缓冲区中被修改后的数据由数据写入进程写到硬盘的数据文件中永久保存。,提高获取和更新数据的性能。,数据高速缓冲区的工作过程,缓冲块的类型,脏缓存块(,Dirty Buffers,),脏缓存块中保存的是已经被修改过的数据。当一条,SQL,语句对某个缓存块中的数据进行修改后,这个缓存块就被标记为脏缓存块。它们最终将由,DBWR,进程写入数据文件,以永久性地保存修改结,空闲缓存块(,Free Buffers,),空闲缓存块中不包含任何数据,它们等待后台进程或服务器进程向其中写入数据。当,Oracle,从数据文件中读取数据时,将会寻找空闲缓存块,以便将数据写入其中,命中缓存块(,Pinned Buffers,),正被使用,或者被显式地声明为保留的缓存块。这些缓存块始终保留在数据高速缓冲区中,不会被换出内存。,缓存块的管理,脏缓存块列表:包含那些已经被修改但还没有写入数据文件的脏缓存块。,LRU,列表(,Least Recently Used,):包含所有的空闲缓存块、命中缓存块和那些还没有来得及移入到脏缓存块列表中的脏缓存块。在该列表中,最近被访问的缓存块被移动到列表的头部,而其他缓存块向列表尾部移动,最近最少被访问的缓存块最先被移出,LRU,列表,从而保证最频繁使用的缓存块始终保存在内存中。,数据高速缓冲区大小,数据高速缓冲区越大,用户需要的数据在内存中的可能性就越大,即缓存命中率越高,从而减少了,Oracle,访问硬盘数据的次数,提高了数据库系统执行的效率。然而,如果数据高速缓冲区的值太大,,Oracle,就不得不在内存中寻找更多的块来定位所需要的数据,反而降低了系统性能。显然需要确定一个合理的数据高速缓冲区大小。,DB_CACHE_SIZE,(标准块),(,2,)重做日志缓冲区,功能,重做日志缓冲区用于缓存用户对数据库进行修改操作时生成的重做记录。,为了提高工作效率,重做记录并不是直接写入重做日志文件中,而是首先被服务器进程写入重做日志缓冲区中,在一定条件下,再由日志写入进程(,LGWR,)把重做日志缓冲区的内容写入重做日志文件中做永久性保存。在归档模式下,当重做日志切换时,由归档进程(,ARCH,)将重做日志文件的内容写入归档文件中,重做日志缓冲区的工作过程,重做日志缓冲区的大小,LOG,_BUFFER,较大的重做日志缓冲区,可以减少对重做日志文件写的次数,适合长时间运行的、产生大量重做记录的事务。,()共享池,功能,共享池用于缓存最近执行过的,SQL,语句、,PL/SQL,程序和数据字典信息,是对,SQL,语句、,PL/SQL,程序进行语法分析、编译、执行的区域。,组成,库缓存,库缓存用于缓存已经解释并执行过的,SQL,语句和,PL/SQL,程序代码,以提高,SQL,或,PL/SQL,程序的执行效率。,包括,SQL,工作区和,PL/SQL,工作区,数据字典缓存,区,数据字典缓存区保存最常用的数据字典信息,共享池大小,SHARED_POOL_SIZE,合适的共享池大小,可使编译过的程序代码长驻内存,大大降低重复执行相同的,SQL,语句、,PL/SQL,程序的系统开销,从而提高数据库的性能。,()大型池,功能,大型池是一个可选的内存配置项,主要为,Oracle,多线程服务器、服务器,I/O,进程、数据库备份与恢复操作、执行具有大量排序操作的,SQL,语句、执行并行化的数据库操作等需要大量缓存的操作提供内存空间。如果没有在,SGA,区中创建大型池,上述操作所需要的缓存空间将在共享池或,PGA,中分配,因而影响共享池或,PGA,的使用效率。,大型池大小,LARGE_POOL_SIZE,(),Java,池,功能,Java,提供对,Java,程序设计的支持,用于存储,Java,代码、,Java,语句的语法分析表、,Java,语句的执行方案和进行,Java,程序开发。,Java,池大小,JAVA_POOL_SIZE,通常不小于,20M,,以便安装,Java,虚拟机,(,6,)流池,功能,流池是一个可选的内存配置项,用于对流的支持。,流池大小,STREAMS_POOL_SIZE,7.2.2 SGA,的管理,SGA,组件大小调整,DB_CACHE_SIZE,LOG_BUFFER,SHARED_POOL_SIZE,LARGE_POOL_SIZE,Java_POOL_SIZE,STRAMS_POOL_SIZE,SGA_MAX_SIZE,注意,除了,SGA_MAX_SIZE,不能修改外,其他几个参数可以使用,ALTER SYSTEM,语句进行动态调整。,SGA,自动管理,在,Oracle 10g,中,通过设置初始化参数,SGA_TARGET,,可以实现对,SGA,中的数据高速缓冲区、共享池、大型池、,Java,池和流池的自动管理,即这几个组件的内存调整不需要,DBA,来干预,系统自动进行调整。但是对于日志缓冲区、非标准块的数据高速缓冲区、保留池、回收池等其他区域的调整还需要,DBA,使用,ALTER SYSTEM,语句手动进行调整。,设置,SGA,自动管理的方法,计算参数,SGA_TARGET,的大小,SELECT ( (SELECT SUM(value) FROM V$SGA) -,(SELECT CURRENT_SIZE FROM,V$SGA_DYNAMIC_FREE_MEMORY) /1024/1024 |MB SGA_TARGET FROM DUAL;,设置参数,SGA_TARGET,通过,ALTER SYSTEM,语句设置参数,SGA_TARGET,的值,该值可以是(,1,)中计算出来的结果,也可以是当前,SGA,大小与,SGA_MAX_SIZE,之间的某个值。例如,将,SGA,中与自动管理相关的组件大小设置为,0,ALTER SYSTEM SET SHARED_POOL_SIZE=0;,SQLALTER SYSTEM SET LARGE_POOL_SIZE=0;,SQLALTER SYSTEM SET Java_POOL_SIZE=0;,SQLALTER SYSTEM SET LARGE_POOL_SIZE=0;,SQLALTER SYSTEM SET STREAMS_POOL_SIZE=0;,如果要取消自动管理,只需将参数,SGA_TARGET,设置为,0,即可。,7.2.3 PGA,功能,PGA,是为每一个与,Oracle,数据库连接的用户保留的内存区,主要存储该连接使用的变量信息和与用户进程交换的信息。是非共享的,只有服务进程本身才能访问它自己的,PGA,区,组成,由排序区、会话区、游标区以及堆栈区组成,排序区主要用于存放排序操作所产生的临时数据,其大小由初始化参数,SORT_AREA_SIZE,定义;会话区用于保存用户会话所具有的权限、角色、性能统计信息;游标区用于存放执行游标操作时所产生的数据;堆栈区用于保存会话过程中的绑定变量、会话变量等信息。,Userprocess,Stack,space,Session information,sort area, cursor information,SGA,Shared SQL areas,SGA,Session,information,PGA Dedicated server Shared server,Serverprocess,Shared SQL areas,Stack,space,sort area, cursor information,7.2.4,在,OEM,中管理数据库实例的内存结构,7.3 Oracle,后台进程,Oracle,进程概述,Oracle,后台进程,7.3.1 Oracle,进程概述,进程的概念,进程是操作系统中一个独立的可以调度的活动,用于完成指定的任务。进程与程序的区别在于:,进程是动态的概念,即动态创建,完成任务后立即消亡;而程序是一个静态实体。,进程强调执行过程,而程序仅仅是指令的有序集合。,进程的类型,用户进程,服务器进程,后台进程,用户进程,当用户连接数据库执行一个应用程序时,会创建一个用户进程,来完成用户所指定的任务。,服务器进程,服务器进程由,Oracle,自身创建,用于处理连接到数据库实例的用户进程所提出的请求。用户进程只有通过服务器进程才能实现对数据库的访问和操作。,服务器进程分为专用服务器进程和共享服务器进程两种。,服务器进程主要完成以下任务:,解析并执行用户提交的,SQL,语句和,PL/SQL,程序;,在,SGA,的数据高速缓冲区中搜索用户进程所要访问的数据,如果数据不在缓冲区中,则需要从硬盘数据文件中读取所需的数据,再将它们复制到缓冲区中;,将用户改变数据库的操作信息写入日志缓冲区中。,将查询或执行后的结果数据返回给用户进程。,后台进程,后台进程作用,为了保证,Oracle,数据库在任意一个时刻可以处理多用户的并发请求,进行复杂的数据操作,而且还要优化系统性能,,Oracle,数据库起用了一些相互独立的附加进程,称为后台进程。服务器进程在执行用户进程请求时,调用后台进程来实现对数据库的操作。,后台进程主要完成以下任务:,在内存与磁盘之间进行,I/O,操作;,监视各个服务器进程状态;,协调各个服务器进程的任务;,维护系统性能和可靠性等。,7.3.2Oracle,后台进程,DBWR,数据库写入进程,LGWR,日志写入进程,CKPT,检查点进程,SMON,系统监控进程,PMON,进程监控进程,ARCH,归档进程,RECO,恢复进程,LCKn,封锁进程,Dnnn,调度进程,Snnn,共享服务器进程,(,1,),DBWR,(,数据库写入进程,),功能:,数据库写入进程负责把数据高速缓冲区中已经被修改过的数据(,“,脏,”,缓存块)成批写入数据文件中永久保存,同时使数据高速缓冲区有更多的空闲缓存块,保证服务器进程将所需要的数据从数据文件读取到数据高速缓冲区中,提高缓存命中率。,Instance,SGA,Database,BufferCache,DBWn,Control files,Data files,Redo log files,Database,启动,DBWR,进程,执行,INSERT,、,UPDATE,等操作时 ,没有足够的空闲块,当检查点发生时,将启动,DBWR,进程,当数据缓存的,LRU,列表的长度达到初始化,DB_BLOCK_WRITE_BATCH,指定值的一半时,若发生超时(大约,3,秒未被启动),LGWR,(日志写入进程),功能,日志写入进程负责把重做日志缓冲区的数据写入重做日志文件中永久保存。,数据写入进程在工作之前,需要了解日志写入进程是否已经把相关的日志缓冲区中记载的数据写入硬盘中,如果相关的日志缓冲区中的记录还没有被写入,,DBWR,会通知,LGWR,完成相应的工作,然后,DBWR,才开始写入,。,Instance,SGA,DBWn,Redo Log,Buffer,Control files,Data files,Redo log files,LGWR,Database,启动,LGWR,进程,用户通过,COMMIT,语句提交当前事务,重做日志缓存被写满三分之一,DBWR,进程开始将脏缓存块写入数据文件,每隔,3,秒,即发生一次超时,将启动,LGWR,事务提交机制,快速提交,组提交,CKPT,(检查点进程),检查点概念,检查点是一个事件,当该事件发生时(每隔一段时间发生),,DBWR,进程把数据高速缓冲区中脏缓存块写入数据文件中,同时,Oracle,将对数据库控制文件和数据文件的头部的同步序号进行更新,以记录下当前的数据库结构和状态,保证数据的同步。,Instance,SGA,DWW0,Redo Log,Buffer,LGWR,Instance,SGA,DBWn,LGWR,CKPT,Control files,Data files,Redo log files,CKPT,进程的作用,更新控制文件与数据文件的头部,使其同步,触发,DBWR,进程,将脏缓存块写入数据文件,检查点的级别,数据库检查点:每一次日志切换时,执行一个数据库检查点,,DBWR,进程将数据高速缓冲区中的脏缓存块写入数据文件中;,表空间检查点:当一个表空间设置为脱机状态时,执行一个表空间检查点,,DBWR,进程把数据高速缓存中与该表空间相关的脏缓存块写入数据文件中。,时间检查点:可以设置以时间为基础的检查点,每隔一段时间执行一次检查点。需要为检查点设置一个合适的执行间隔,间隔太短,将会产生过多的硬盘,I/O,操作;间隔太长,数据库的恢复将耗费太多时间。,检查点事件的触发,每一个日志切换时,当实例以如下方式关闭时,NORMAL,TRANSACTION,IMMEDIATE,当使用,ALTER TABLESPACE OFFLINE NORMAL|READ ONLY|BEGIN BACKUP,,作用于某个数据文件上的检查点发生时,.,设置以时间为基础的检查点事件,当数据库管理员需要手工操作时,ALTER SYSTEM CHECKPOINT,与检查点的相关初始化参数,LOG_CHECKPOINT_INTERVAL,用来指定重做日志文件每写多少操作系统块发生一次检查点事件,例如重做日志文件,1M,,系统操作块为,1K,:设置此参数为,500,,则重做日志文件写入,500K,时,检查点事件发生,LOG_CHECKPOINT_TIMEOUT,用来指定每隔多长时间发生一次检查点,如,1800,,表示每隔,1800,秒,如果为,0,,表示此参数无效,E,LOG_CHECKPOINT_TO_ALERT,用于设置是否将检查点信息记录到警告日志中数,SMON,(系统监控进程),功能,在实例启动时负责对数据库进行恢复;,回收不再使用的临时空间。,将各个表空间的空闲碎片合并(表空间的存储参数,PCTINCREASE,不为,0,时)。,Instance,SGA,SMON,Control files,Data files,Redo log files,Instance,SGA,SMON,Database,PMON,(进程监控进程),功能,负责恢复失败的用户进程或服务器进程,并且释放进程所占用的资源;,清除非正常中断的用户进程留下的孤儿会话,回退未提交的事务,释放会话所占用的锁、,SGA,、,PGA,等资源;,监控调度进程和服务器进程的状态,如果它们失败,则尝试重新启动它们,并释放它们所占用的各种资源。,Instance,SGA,PMON,PGA area,ARCH,(归档进程),功能,归档进程负责在日志切换后将已经写满的重做日志文件复制到归档目标中,防止写满的重做日志文件被覆盖,最多可启动,10,个归档进程(,ARC0,ARC9,),RECO,(恢复进程),功能,RECO,进程负责在分布式数据库环境中自动解决分布式事务的故障。一个节点的,RECO,自动解决所有的悬而未决的事务。当一个数据库服务器的,RECO,后台进程试图建立同一远程服务器的通信,如果该远程服务器不可用或者网络连接不能建立时,,RECO,自动地在一个时间间隔之后再次连接。当且仅当数据库配置为分布式事务处理,且初始化参数,DISTRIBUTED_TRANSACTIONS,的值大于,0,时,,RECO,进程才会自动启动。,LCKn,(锁进程),功能,LCKn,进程用于,Oracle,并行服务器环境中。在数据库中最多可以启动,10,个,LCKn,进程,主要用于实例间的封锁。,Dnnn,(调度进程),功能,Dnnn,进程是多线程服务器(,Multithreaded Server,,,MTS,)的组成部分,以后台进程的形式运行。调度进程接受用户进程请求,将它们放入请求队列中,然后为请求队列中的用户进程分配一个服务器进程。最后,从响应队列返回数据给用户进程,SGA,(,System Global Area),共享,SQL,区,共享池,数据库缓冲存储区,日志缓冲区,数据字典,Server Process,User Process,DBWR,PMON,CKPT,LGWR,SMON,ARCH,Datafiles,Control Files,Redo Log Files,归档,小节,数据库实例的概念,实例内存区的组成与功能,SGA,的组成、功能及其管理,实例后台进程的分类与功能,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 商业管理 > 商业计划


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!