oracle第8章数据库实例与操作模式.ppt
《oracle第8章数据库实例与操作模式.ppt》由会员分享,可在线阅读,更多相关《oracle第8章数据库实例与操作模式.ppt(52页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、Oracle 数据库基础教程2009第第8章章 数据库实例与操作模式数据库实例与操作模式Oracle 数据库基础教程2007本章内容本章内容pOracle实例pOracle内存结构pOracle后台进程p数据库操作模式Oracle 数据库基础教程2007本章要求本章要求p掌握Oracle实例基本概念p掌握Oracle实例的内存结构、功能及管理p了解Oracle进程分类及其作用p掌握Oracle后台进程、功能及管理p了解Oracle数据库操作模式Oracle 数据库基础教程20078.1实例概述实例概述 Oracle实例的概念 是Oracle数据库的软件结构,由一系列后台进程与内存结构组成Ora
2、cle 数据库基础教程2007 处理数据的内存结构处理数据的内存结构实实 例例 后后 台台 进进 程程 客户应用程序 服务器进程 数据库数据库Oracle 数据库基础教程2007pOracle数据库服务器由数据库和实例组成p数据库与实例的关系n数据库是Oracle用于保存数据的一系列物理结构和逻辑结构n用户直接与实例交互,由实例访问数据库。n每个数据库至少有一个与之对应的实例p启动数据库时先创建实例pOracle 实例组成Oracle 数据库基础教程2007实例实例SGA日志缓存日志缓存共享池共享池数据字典数据字典缓冲区缓冲区库缓冲区库缓冲区DBWRSMONPMONCKPTLGWROthers
3、用户进程用户进程服务器进程服务器进程PGA控制文件控制文件数据文数据文件件 归档日志归档日志文件文件参数文件参数文件口令文件口令文件重做日志重做日志文件文件数据库数据库数据库缓存数据库缓存Oracle 数据库基础教程20078.2Oracle内存结构内存结构p系统全局区 SGAnSGA区是由区是由Oracle分配的共享内存结构,包含一个数分配的共享内存结构,包含一个数据库实例共享的数据和控制信息。当多个用户同时连据库实例共享的数据和控制信息。当多个用户同时连接同一个实例时,接同一个实例时,SGA区数据供多个用户共享,所以区数据供多个用户共享,所以SGA区又称为共享全局区。区又称为共享全局区。p
4、程序全局区PGAnPGA区是在用户进程连接数据库,创建一个会话时,区是在用户进程连接数据库,创建一个会话时,由由Oracle为用户分配的内存区域,保存当前用户私有为用户分配的内存区域,保存当前用户私有的数据和控制信息。的数据和控制信息。Oracle 数据库基础教程20078.2.1系统全局区系统全局区SGApSGA 包含的内存结构有:n数据高速缓冲区(数据高速缓冲区(Database Buffer Cache)n共享池(共享池(Shared Pool)n重做日志缓冲区(重做日志缓冲区(Redo Log Buffer)n其他结构其他结构(例如锁管理、统计数据)例如锁管理、统计数据)p在SGA,有
5、两个可配置的可选内存结构:n大池(大池(Large Pool)nJava池(池(Java Pool)Oracle 数据库基础教程2007数据高速缓冲区数据高速缓冲区p功能n数据缓冲区存储的是从数据文件中检索出来的数据拷数据缓冲区存储的是从数据文件中检索出来的数据拷贝。应用程序要访问的数据必须从磁盘的数据文件读贝。应用程序要访问的数据必须从磁盘的数据文件读到数据缓冲区中处理。到数据缓冲区中处理。n在数据缓冲区中被修改后的数据由数据写入进程写到在数据缓冲区中被修改后的数据由数据写入进程写到硬盘的数据文件中永久保存。硬盘的数据文件中永久保存。n提高获取和更新数据的性能提高获取和更新数据的性能Orac
6、le 数据库基础教程2007p缓冲块的类型:n“脏脏”缓存块(缓存块(Dirty Buffers)p保存的是已经被修改过的数据 n空闲缓存块(空闲缓存块(Free Buffers)p不包含任何数据,它们等待后台进程或服务器进程向其中写入数据。n命中缓存块命中缓存块(Pinned Buffers)p正被使用,或者被显式声明为保留的缓存块 Oracle 数据库基础教程2007p缓冲块的管理n该列表中包含那些已经被修改但还没有写入数据文件该列表中包含那些已经被修改但还没有写入数据文件的脏缓存块。的脏缓存块。nLRU列表(列表(Least Recently Used):该列表中包):该列表中包含所有的
7、空闲缓存块、命中缓存块以及那些还没有来含所有的空闲缓存块、命中缓存块以及那些还没有来得及移入到脏缓存块列表的脏缓存块。在该列表中,得及移入到脏缓存块列表的脏缓存块。在该列表中,最近被访问的缓存块被移动到该列表的头部,而其他最近被访问的缓存块被移动到该列表的头部,而其他缓存块向列表尾部移动,最近最少被访问的缓存块最缓存块向列表尾部移动,最近最少被访问的缓存块最先被移出先被移出LRU列表,从而保证最频繁使用的数据块始列表,从而保证最频繁使用的数据块始终保存在内存中终保存在内存中Oracle 数据库基础教程2007p数据高速缓冲区大小数据高速缓冲区大小n DB_CACHE_SIZE(DB_BLOCK
8、_SIZE、DB_BLOCK_BUFFERS)n可以在参数文件中设置数据高速缓冲区的大小。数据高速缓冲区越大,用户需要的数据在内存中的可能性越大,即缓存命中率高,从而减少了Oracle访问硬盘数据的次数,提高数据库系统执行的效率。然而,数据高速缓冲区的值太大,Oracle不得不在内存中寻找更多的块来定位所需要数据,反而降低了系统性能。因此需要确定一个合理的数据高速缓冲区的大小。Oracle 数据库基础教程2007重做日志缓冲区重做日志缓冲区p功能n用于缓存在用户对数据进行修改的操作过程中生成的用于缓存在用户对数据进行修改的操作过程中生成的重做记录。当重做日志缓冲区被添满时,由日志写入重做记录。
9、当重做日志缓冲区被添满时,由日志写入进程把重做日志缓冲区的内容写到磁盘的重做日志文进程把重做日志缓冲区的内容写到磁盘的重做日志文件中做永久的保存。件中做永久的保存。Oracle 数据库基础教程2007p重做日志缓冲区的大小nLOG_BUFFERn在参数文件中设置,在参数文件中设置,LOG_BUFFER的值越大,重做日的值越大,重做日志缓冲区就可以存放更多的事务提交的记录,减少了志缓冲区就可以存放更多的事务提交的记录,减少了数据被频繁填充到重做日志文件中的次数。数据被频繁填充到重做日志文件中的次数。Oracle 数据库基础教程2007共享池共享池p功能n用于缓存与用于缓存与SQL或或PL/SQL
10、语句、数据字典、资源锁以及其他控语句、数据字典、资源锁以及其他控制结构相关的数据制结构相关的数据p组成n库缓存库缓存p库缓存用于缓存已经解释并执行过的SQL语句和PL/SQL程序代码,以提高SQL或PL/SQL程序的执行效率。p包括SQL工作区和PL/SQL工作区 n数据字典缓存数据字典缓存区区p数据字典缓存区保存最常用的数据字典信息Oracle 数据库基础教程2007p共享池大小 nSHARED_POOL_SIZE n合适的共享池大小,可使编译过的程序代码长驻内存,合适的共享池大小,可使编译过的程序代码长驻内存,大大降低重复执行相同的大大降低重复执行相同的SQL语句、语句、PL/SQL程序的
11、系程序的系统开销,从而提高数据库的性能。统开销,从而提高数据库的性能。Oracle 数据库基础教程2007大型池大型池 p功能n大型池是一个可选的内存配置项,主要为大型池是一个可选的内存配置项,主要为Oracle多线多线程服务器、服务器程服务器、服务器I/O进程、数据库备份与恢复操作、进程、数据库备份与恢复操作、执行具有大量排序操作的执行具有大量排序操作的SQL语句、执行并行化的数语句、执行并行化的数据库操作等需要大量缓存的操作提供内存空间。如果据库操作等需要大量缓存的操作提供内存空间。如果没有在没有在SGA区中创建大型池,上述操作所需要的缓存区中创建大型池,上述操作所需要的缓存空间将在共享池
12、或空间将在共享池或PGA中分配,因而影响共享池或中分配,因而影响共享池或PGA的使用效率。的使用效率。p大型池大小n大型池的大小由参数大型池的大小由参数LARGE_POOL_SIZE参数指定,参数指定,在数据库运行期间,可以使用在数据库运行期间,可以使用ALTER SYSTEM语句语句修改大型池的大小,修改大型池的大小,Oracle 数据库基础教程2007Java池池 p功能nJava提供对提供对Java程序设计的支持,用于存储程序设计的支持,用于存储Java代代码、码、Java语句的语法分析表、语句的语法分析表、Java语句的执行方案语句的执行方案和进行和进行Java程序开发。程序开发。pJ
13、ava池大小nJava池大小由参数池大小由参数JAVA_POOL_SIZE指定,通常指定,通常不小于不小于20M,以便安装,以便安装Java虚拟机虚拟机 Oracle 数据库基础教程2007影响影响SGA大小的参数大小的参数pDB_CACHE_SIZEpLOB_BUFFERpSHARED_POOL_SIZEpJAVA_POOL_SIZEpLARGE_POOL_SIZEOracle 数据库基础教程20078.2.3PGA区区p功能nPGA 是为每一个与是为每一个与Oracle数据库连接的用户保留的内存区,主数据库连接的用户保留的内存区,主要存储该连接使用的变量信息和与用户进程交换的信息。是非共要
14、存储该连接使用的变量信息和与用户进程交换的信息。是非共享的,只有服务进程本身才能访问它自己的享的,只有服务进程本身才能访问它自己的PGA区区p组成n由排序区、会话区、游标区以及堆栈区组成由排序区、会话区、游标区以及堆栈区组成 n排序区主要用于存放排序操作所产生的临时数据,其大小由初始排序区主要用于存放排序操作所产生的临时数据,其大小由初始化参数化参数SORT_AREA_SIZE定义;会话区用于保存用户会话所定义;会话区用于保存用户会话所具有的权限、角色、性能统计信息;游标区用于存放执行游标操具有的权限、角色、性能统计信息;游标区用于存放执行游标操作时所产生的数据;堆栈区用于保存会话过程中的绑定
15、变量、会作时所产生的数据;堆栈区用于保存会话过程中的绑定变量、会话变量等信息。话变量等信息。Oracle 数据库基础教程2007Userprocess StackspaceSession informationsort area,cursor informationSGAShared SQL areasSGASessioninformation PGA Dedicated server Shared server ServerprocessShared SQL areasStackspacesort area,cursor informationOracle 数据库基础教程20078.2.4在
16、在OEM中管理数据库实例的内存结构中管理数据库实例的内存结构Oracle 数据库基础教程20078.3Oracle后台进程后台进程p进程的概念n进程是操作系统中一个独立的可以调度的活动,用于进程是操作系统中一个独立的可以调度的活动,用于完成指定的任务。进程与程序的区别在于:完成指定的任务。进程与程序的区别在于:n进程是动态的概念,即动态创建,完成任务后立即消进程是动态的概念,即动态创建,完成任务后立即消亡;而程序是一个静态实体。亡;而程序是一个静态实体。n进程强调执行过程,而程序仅仅是指令的有序集合。进程强调执行过程,而程序仅仅是指令的有序集合。p进程的类型n用户进程用户进程n服务器进程服务器
17、进程n后台进程后台进程 Oracle 数据库基础教程2007p用户进程用户进程 n当用户连接数据库执行一个应用程序时,会创建一个用户进程,来完成用户所指定的任务。p服务器进程服务器进程 n服务器进程由Oracle自身创建,用于处理连接到数据库实例的用户进程所提出的请求。用户进程只有通过服务器进程才能实现对数据库的访问和操作。n服务器进程分为专用服务器进程和共享服务器进程两种。一个专用服务器进程只能为一个用户进程提供服务;一个共享服务器进程可以为多个用户进程提供服务。n服务器进程主要完成以下任务:p解析并执行用户提交的解析并执行用户提交的SQL语句和语句和PL/SQL程序;程序;p在在SGA的数
18、据高速缓冲区中搜索用户进程所要访问的数据,如果数的数据高速缓冲区中搜索用户进程所要访问的数据,如果数据不在缓冲区中,则需要从硬盘数据文件中读取所需的数据,再将它据不在缓冲区中,则需要从硬盘数据文件中读取所需的数据,再将它们复制到缓冲区中;们复制到缓冲区中;p将查询或执行后的结果数据返回给用户进程。将查询或执行后的结果数据返回给用户进程。Oracle 数据库基础教程2007p后台进程后台进程 n后台进程作用后台进程作用p为了保证为了保证Oracle数据库在任意一个时刻可以处理多用户的并数据库在任意一个时刻可以处理多用户的并发请求,进行复杂的数据操作,而且还要优化系统性能,发请求,进行复杂的数据操
19、作,而且还要优化系统性能,Oracle数据库起用了一些相互独立的附加进程,称为后台进数据库起用了一些相互独立的附加进程,称为后台进程。服务器进程在执行用户进程请求时,调用后台进程来实现程。服务器进程在执行用户进程请求时,调用后台进程来实现对数据库的操作。对数据库的操作。n后台进程主要完成以下任务:后台进程主要完成以下任务:p在内存与磁盘之间进行I/O操作;p监视各个服务器进程状态;p协调各个服务器进程的任务;p维护系统性能和可靠性等。Oracle 数据库基础教程2007Oracle 数据库基础教程20078.3.2Oracle后台进程后台进程pDBWR 数据库写入进程pLGWR 日志写入进程p
20、CKPT 检查点进程pSMON 系统监控进程pPMON 进程监控进程pARCH 归档进程pRECO 恢复进程pLCKn 封锁进程pDnnn 调度进程pSnnn 共享服务器进程Oracle 数据库基础教程2007DBWR(数据库写入进程)(数据库写入进程)n功能:数据库写入进程负责把数据高速缓冲区中已经被修改过的数据(“脏”缓存块)成批写入数据文件中永久保存,同时使数据高速缓冲区有更多的空闲缓存块,保证服务器进程将所需要的数据从数据文件读取到数据高速缓冲区中,提高缓存命中率。InstanceSGADatabaseBufferCacheDBWnControl filesData files Red
21、o log filesDatabaseOracle 数据库基础教程2007p启动DBWR进程n执行执行INSERT、UPDATE等操作时等操作时,没有足够的空,没有足够的空闲块闲块n当检查点发生时,将启动当检查点发生时,将启动DBWR进程进程 n当数据缓存的当数据缓存的LRU列表的长度达到初始化列表的长度达到初始化 DB_BLOCK_WRITE_BATCH指定值的一半时指定值的一半时 n若发生超时(大约若发生超时(大约3秒未被启动)秒未被启动)Oracle 数据库基础教程2007LGWR(日志写入进程)(日志写入进程)p功能n日日志志写写入入进进程程负负责责把把重重做做日日志志缓缓冲冲区区的的
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- oracle 数据库 实例 操作 模式
限制150内