Oracle第7章数据库实例.pptx
《Oracle第7章数据库实例.pptx》由会员分享,可在线阅读,更多相关《Oracle第7章数据库实例.pptx(77页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、Oracle 10g 数据库基础教程第第7章章 数据库实例数据库实例Oracle 10g数据库基础教程本章内容本章内容pOracle实例概述 pOracle内存结构pOracle后台进程Oracle 10g数据库基础教程本章要求本章要求p掌握Oracle实例基本概念p掌握Oracle实例的内存结构、功能及管理p了解Oracle进程分类及其作用p掌握Oracle后台进程、功能及管理Oracle 10g数据库基础教程7.1实例概述实例概述pOracle实例的概念 nOracleOracle数据库主要由放在磁盘中的物理数据库和对物数据库主要由放在磁盘中的物理数据库和对物理数据库进行管理的数据库管理系
2、统。其中数据库管理数据库进行管理的数据库管理系统。其中数据库管理系统是处于用户与物理数据库之间的一个中间层软理系统是处于用户与物理数据库之间的一个中间层软件,又称为实例,由一系列内存结构和后台进程组成。件,又称为实例,由一系列内存结构和后台进程组成。n在启动数据库时,在启动数据库时,OracleOracle首先在内存中获取一定的空首先在内存中获取一定的空间,启动各种用途的后台进程,即创建一个数据库实间,启动各种用途的后台进程,即创建一个数据库实例,然后由实例装载数据文件和重做日志文件,最后例,然后由实例装载数据文件和重做日志文件,最后打开数据库。用户操作数据库的过程实质上是与数据打开数据库。用
3、户操作数据库的过程实质上是与数据库实例建立连接,然后通过实例来连接、操作数据库库实例建立连接,然后通过实例来连接、操作数据库的过程。的过程。Oracle 10g数据库基础教程p数据库与实例的关系 n 单实例数据库系统单实例数据库系统 多实例数据库系统多实例数据库系统 Oracle 10g数据库基础教程p实例组成 n内存结构:系统全局区(内存结构:系统全局区(SGA)和程序全局区()和程序全局区(PGA)n后台进程组成后台进程组成 Oracle 10g数据库基础教程 处理数据的内存结构处理数据的内存结构实实 例例 后后 台台 进进 程程 客户应用程序 服务器进程 数据库数据库Oracle 10g
4、数据库基础教程实例实例SGA日志缓存日志缓存共享池共享池数据字典数据字典缓冲区缓冲区库缓冲区库缓冲区DBWRSMONPMONCKPTLGWROthers用户进程用户进程服务器进程服务器进程PGA控制文件控制文件数据文数据文件件 归档日志归档日志文件文件参数文件参数文件口令文件口令文件重做日志重做日志文件文件数据库数据库数据库缓存数据库缓存Oracle 10g数据库基础教程7.2 Oracle内存结构内存结构p系统全局区(System Global Area,SGA)p程序全局区(Program Global Area,PGA)Oracle 10g数据库基础教程pSGAnSGA是由是由Oracl
5、e分配的共享内存结构,包含一个数据库实例共享分配的共享内存结构,包含一个数据库实例共享的数据和控制信息。当多个用户同时连接同一个实例时,的数据和控制信息。当多个用户同时连接同一个实例时,SGA数数据可供多个用户共享,据可供多个用户共享,SGA又称为共享全局区(又称为共享全局区(Shared Global Area)。用户对数据库的各种操作主要在)。用户对数据库的各种操作主要在SGA中进行。中进行。该内存区随数据库实例的创建而分配,随实例的终止而释放。该内存区随数据库实例的创建而分配,随实例的终止而释放。pPGAnPGA是在用户进程连接数据库、创建一个会话时,由是在用户进程连接数据库、创建一个会
6、话时,由Oracle为用为用户分配的内存区域,保存当前用户私有的数据和控制信息,因此该户分配的内存区域,保存当前用户私有的数据和控制信息,因此该区又称为私有全局区(区又称为私有全局区(Private Global Area)。每个服务器进)。每个服务器进程只能访问自己的程只能访问自己的PGA,所有服务器进程的,所有服务器进程的PGA总和即为实例的总和即为实例的PGA的大小。的大小。Oracle 10g数据库基础教程7.2.1 SGApSGA 包含的内存结构有:n数据高速缓冲区(数据高速缓冲区(Database Buffer Cache)n共享池(共享池(Shared Pool)n重做日志缓冲区
7、(重做日志缓冲区(Redo Log Cache)n大型池(大型池(Large Pool)nJava池(池(Java Pool)n流池(流池(Streams Pool)n其他结构(如固定其他结构(如固定SGA、锁管理等)、锁管理等)Oracle 10g数据库基础教程(1)数据高速缓冲区)数据高速缓冲区p功能n存储从数据文件中检索出来的数据拷贝。应用存储从数据文件中检索出来的数据拷贝。应用程序要访问的数据必须从磁盘的数据文件读到程序要访问的数据必须从磁盘的数据文件读到数据缓冲区中处理。数据缓冲区中处理。n在数据缓冲区中被修改后的数据由数据写入进在数据缓冲区中被修改后的数据由数据写入进程写到硬盘的数
8、据文件中永久保存。程写到硬盘的数据文件中永久保存。n提高获取和更新数据的性能。提高获取和更新数据的性能。Oracle 10g数据库基础教程p 数据高速缓冲区的工作过程 Oracle 10g数据库基础教程p缓冲块的类型n脏缓存块(脏缓存块(Dirty Buffers)p脏缓存块中保存的是已经被修改过的数据。当一条SQL语句对某个缓存块中的数据进行修改后,这个缓存块就被标记为脏缓存块。它们最终将由DBWR进程写入数据文件,以永久性地保存修改结 n空闲缓存块(空闲缓存块(Free Buffers)p空闲缓存块中不包含任何数据,它们等待后台进程或服务器进程向其中写入数据。当Oracle从数据文件中读取
9、数据时,将会寻找空闲缓存块,以便将数据写入其中 n命中缓存块(命中缓存块(Pinned Buffers)p正被使用,或者被显式地声明为保留的缓存块。这些缓存块始终保留在数据高速缓冲区中,不会被换出内存。Oracle 10g数据库基础教程p缓存块的管理 n脏缓存块列表:包含那些已经被修改但还没有写入数脏缓存块列表:包含那些已经被修改但还没有写入数据文件的脏缓存块。据文件的脏缓存块。nLRU列表(列表(Least Recently Used):包含所有的):包含所有的空闲缓存块、命中缓存块和那些还没有来得及移入到空闲缓存块、命中缓存块和那些还没有来得及移入到脏缓存块列表中的脏缓存块。在该列表中,最
10、近被访脏缓存块列表中的脏缓存块。在该列表中,最近被访问的缓存块被移动到列表的头部,而其他缓存块向列问的缓存块被移动到列表的头部,而其他缓存块向列表尾部移动,最近最少被访问的缓存块最先被移出表尾部移动,最近最少被访问的缓存块最先被移出LRU列表,从而保证最频繁使用的缓存块始终保存在列表,从而保证最频繁使用的缓存块始终保存在内存中。内存中。Oracle 10g数据库基础教程p数据高速缓冲区大小数据高速缓冲区大小 n数据高速缓冲区越大,用户需要的数据在内存中的可能性就越大,即缓存命中率越高,从而减少了Oracle访问硬盘数据的次数,提高了数据库系统执行的效率。然而,如果数据高速缓冲区的值太大,Ora
11、cle就不得不在内存中寻找更多的块来定位所需要的数据,反而降低了系统性能。显然需要确定一个合理的数据高速缓冲区大小。nDB_CACHE_SIZE(标准块)Oracle 10g数据库基础教程(2)重做日志缓冲区)重做日志缓冲区p功能n重做日志缓冲区用于缓存用户对数据库进行修改操作重做日志缓冲区用于缓存用户对数据库进行修改操作时生成的重做记录。时生成的重做记录。n为了提高工作效率,重做记录并不是直接写入重做日为了提高工作效率,重做记录并不是直接写入重做日志文件中,而是首先被服务器进程写入重做日志缓冲志文件中,而是首先被服务器进程写入重做日志缓冲区中,在一定条件下,再由日志写入进程(区中,在一定条件
12、下,再由日志写入进程(LGWR)把重做日志缓冲区的内容写入重做日志文件中做永久把重做日志缓冲区的内容写入重做日志文件中做永久性保存。在归档模式下,当重做日志切换时,由归档性保存。在归档模式下,当重做日志切换时,由归档进程(进程(ARCH)将重做日志文件的内容写入归档文件)将重做日志文件的内容写入归档文件中中 Oracle 10g数据库基础教程p重做日志缓冲区的工作过程 Oracle 10g数据库基础教程p重做日志缓冲区的大小nLOG_BUFFERn较大的重做日志缓冲区,可以减少对重做日志文件写较大的重做日志缓冲区,可以减少对重做日志文件写的次数,适合长时间运行的、产生大量重做记录的事的次数,适
13、合长时间运行的、产生大量重做记录的事务。务。Oracle 10g数据库基础教程()共享池()共享池p功能n共享池用于缓存最近执行过的共享池用于缓存最近执行过的SQL语句、语句、PL/SQL程程序和数据字典信息,是对序和数据字典信息,是对SQL语句、语句、PL/SQL程序进程序进行语法分析、编译、执行的区域。行语法分析、编译、执行的区域。p组成n库缓存库缓存p库缓存用于缓存已经解释并执行过的SQL语句和PL/SQL程序代码,以提高SQL或PL/SQL程序的执行效率。p包括SQL工作区和PL/SQL工作区 n数据字典缓存数据字典缓存区区p数据字典缓存区保存最常用的数据字典信息Oracle 10g数
14、据库基础教程p共享池大小 nSHARED_POOL_SIZE n合适的共享池大小,可使编译过的程序代码长驻内存,合适的共享池大小,可使编译过的程序代码长驻内存,大大降低重复执行相同的大大降低重复执行相同的SQL语句、语句、PL/SQL程序的系程序的系统开销,从而提高数据库的性能。统开销,从而提高数据库的性能。Oracle 10g数据库基础教程()大型池()大型池 p功能n大型池是一个可选的内存配置项,主要为大型池是一个可选的内存配置项,主要为Oracle多线多线程服务器、服务器程服务器、服务器I/O进程、数据库备份与恢复操作、进程、数据库备份与恢复操作、执行具有大量排序操作的执行具有大量排序操
15、作的SQL语句、执行并行化的数语句、执行并行化的数据库操作等需要大量缓存的操作提供内存空间。如果据库操作等需要大量缓存的操作提供内存空间。如果没有在没有在SGA区中创建大型池,上述操作所需要的缓存区中创建大型池,上述操作所需要的缓存空间将在共享池或空间将在共享池或PGA中分配,因而影响共享池或中分配,因而影响共享池或PGA的使用效率。的使用效率。p大型池大小nLARGE_POOL_SIZEOracle 10g数据库基础教程()()Java池池 p功能nJava提供对提供对Java程序设计的支持,用于存储程序设计的支持,用于存储Java代代码、码、Java语句的语法分析表、语句的语法分析表、Ja
16、va语句的执行方案语句的执行方案和进行和进行Java程序开发。程序开发。pJava池大小nJAVA_POOL_SIZEn通常不小于通常不小于20M,以便安装,以便安装Java虚拟机虚拟机 Oracle 10g数据库基础教程(6)流池)流池 p功能n流池是一个可选的内存配置项,用于对流的支持。流池是一个可选的内存配置项,用于对流的支持。p流池大小nSTREAMS_POOL_SIZE Oracle 10g数据库基础教程7.2.2 SGA的管理的管理pSGA组件大小调整 nDB_CACHE_SIZEnLOG_BUFFERnSHARED_POOL_SIZEnLARGE_POOL_SIZEnJava_P
17、OOL_SIZEn STRAMS_POOL_SIZEnSGA_MAX_SIZEp注意n除了除了SGA_MAX_SIZE不能修改外,其他几个参数可不能修改外,其他几个参数可以使用以使用ALTER SYSTEM语句进行动态调整。语句进行动态调整。Oracle 10g数据库基础教程pSGA自动管理 n在在Oracle 10g中,通过设置初始化参数中,通过设置初始化参数SGA_TARGET,可以实现对,可以实现对SGA中的数据高速缓冲中的数据高速缓冲区、共享池、大型池、区、共享池、大型池、Java池和流池的自动管理,即池和流池的自动管理,即这几个组件的内存调整不需要这几个组件的内存调整不需要DBA来干
18、预,系统自动来干预,系统自动进行调整。但是对于日志缓冲区、非标准块的数据高进行调整。但是对于日志缓冲区、非标准块的数据高速缓冲区、保留池、回收池等其他区域的调整还需要速缓冲区、保留池、回收池等其他区域的调整还需要DBA使用使用ALTER SYSTEM语句手动进行调整。语句手动进行调整。Oracle 10g数据库基础教程p设置SGA自动管理的方法n计算参数计算参数SGA_TARGET的大小的大小 pSELECT(SELECT SUM(value)FROM V$SGA)-p(SELECT CURRENT_SIZE FROM pV$SGA_DYNAMIC_FREE_MEMORY)/1024/1024
19、|MB SGA_TARGET FROM DUAL;n设置参数设置参数SGA_TARGETp通过ALTER SYSTEM语句设置参数SGA_TARGET的值,该值可以是(1)中计算出来的结果,也可以是当前SGA大小与SGA_MAX_SIZE之间的某个值。例如 n将将SGA中与自动管理相关的组件大小设置为中与自动管理相关的组件大小设置为0 Oracle 10g数据库基础教程nALTER SYSTEM SET SHARED_POOL_SIZE=0;nSQLALTER SYSTEM SET LARGE_POOL_SIZE=0;nSQLALTER SYSTEM SET Java_POOL_SIZE=0;
20、nSQLALTER SYSTEM SET LARGE_POOL_SIZE=0;nSQLALTER SYSTEM SET STREAMS_POOL_SIZE=0;p如果要取消自动管理,只需将参数SGA_TARGET设置为0即可。Oracle 10g数据库基础教程7.2.3 PGAp功能nPGA 是为每一个与是为每一个与Oracle数据库连接的用户保留的内存区,主数据库连接的用户保留的内存区,主要存储该连接使用的变量信息和与用户进程交换的信息。是非共要存储该连接使用的变量信息和与用户进程交换的信息。是非共享的,只有服务进程本身才能访问它自己的享的,只有服务进程本身才能访问它自己的PGA区区p组成n
21、由排序区、会话区、游标区以及堆栈区组成由排序区、会话区、游标区以及堆栈区组成 n排序区主要用于存放排序操作所产生的临时数据,其大小由初始排序区主要用于存放排序操作所产生的临时数据,其大小由初始化参数化参数SORT_AREA_SIZE定义;会话区用于保存用户会话所定义;会话区用于保存用户会话所具有的权限、角色、性能统计信息;游标区用于存放执行游标操具有的权限、角色、性能统计信息;游标区用于存放执行游标操作时所产生的数据;堆栈区用于保存会话过程中的绑定变量、会作时所产生的数据;堆栈区用于保存会话过程中的绑定变量、会话变量等信息。话变量等信息。Oracle 10g数据库基础教程Userprocess
22、 StackspaceSession informationsort area,cursor informationSGAShared SQL areasSGASessioninformation PGA Dedicated server Shared server ServerprocessShared SQL areasStackspacesort area,cursor informationOracle 10g数据库基础教程7.2.4在在OEM中管理数据库实例的内存结构中管理数据库实例的内存结构Oracle 10g数据库基础教程7.3 Oracle后台进程后台进程pOracle进程概述
23、pOracle后台进程 Oracle 10g数据库基础教程7.3.1 Oracle进程概述进程概述p进程的概念n进程是操作系统中一个独立的可以调度的活动,用于进程是操作系统中一个独立的可以调度的活动,用于完成指定的任务。进程与程序的区别在于:完成指定的任务。进程与程序的区别在于:n进程是动态的概念,即动态创建,完成任务后立即消进程是动态的概念,即动态创建,完成任务后立即消亡;而程序是一个静态实体。亡;而程序是一个静态实体。n进程强调执行过程,而程序仅仅是指令的有序集合。进程强调执行过程,而程序仅仅是指令的有序集合。p进程的类型n用户进程用户进程n服务器进程服务器进程n后台进程后台进程 Orac
24、le 10g数据库基础教程p用户进程 n当用户连接数据库执行一个应用程序时,会创建一个用户进程,来完成用户所指定的任务。p服务器进程 n服务器进程由Oracle自身创建,用于处理连接到数据库实例的用户进程所提出的请求。用户进程只有通过服务器进程才能实现对数据库的访问和操作。n服务器进程分为专用服务器进程和共享服务器进程两种。n服务器进程主要完成以下任务:p解析并执行用户提交的解析并执行用户提交的SQL语句和语句和PL/SQL程序;程序;p在在SGA的数据高速缓冲区中搜索用户进程所要访问的数据,如果数的数据高速缓冲区中搜索用户进程所要访问的数据,如果数据不在缓冲区中,则需要从硬盘数据文件中读取所
25、需的数据,再将它据不在缓冲区中,则需要从硬盘数据文件中读取所需的数据,再将它们复制到缓冲区中;们复制到缓冲区中;p将用户改变数据库的操作信息写入日志缓冲区中。将用户改变数据库的操作信息写入日志缓冲区中。p将查询或执行后的结果数据返回给用户进程。将查询或执行后的结果数据返回给用户进程。Oracle 10g数据库基础教程p后台进程后台进程 n后台进程作用后台进程作用p为了保证为了保证Oracle数据库在任意一个时刻可以处理多用户的并数据库在任意一个时刻可以处理多用户的并发请求,进行复杂的数据操作,而且还要优化系统性能,发请求,进行复杂的数据操作,而且还要优化系统性能,Oracle数据库起用了一些相
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Oracle 数据库 实例
限制150内