oracle教程-第8章数据库实例与操作模式ppt课件

上传人:我*** 文档编号:148522704 上传时间:2020-10-20 格式:PPT 页数:52 大小:306KB
返回 下载 相关 举报
oracle教程-第8章数据库实例与操作模式ppt课件_第1页
第1页 / 共52页
oracle教程-第8章数据库实例与操作模式ppt课件_第2页
第2页 / 共52页
oracle教程-第8章数据库实例与操作模式ppt课件_第3页
第3页 / 共52页
oracle教程-第8章数据库实例与操作模式ppt课件_第4页
第4页 / 共52页
oracle教程-第8章数据库实例与操作模式ppt课件_第5页
第5页 / 共52页
点击查看更多>>
资源描述

《oracle教程-第8章数据库实例与操作模式ppt课件》由会员分享,可在线阅读,更多相关《oracle教程-第8章数据库实例与操作模式ppt课件(52页珍藏版)》请在金锄头文库上搜索。

1、第8章 数据库实例,本章内容,Oracle实例概述 Oracle内存结构 Oracle后台进程,本章要求,掌握Oracle实例基本概念 掌握Oracle实例的内存结构、功能及管理 了解Oracle进程分类及其作用 掌握Oracle后台进程、功能及管理,8.1实例概述,Oracle实例的概念 Oracle数据库主要由放在磁盘中的物理数据库和对物理数据库进行管理的数据库管理系统。其中数据库管理系统是处于用户与物理数据库之间的一个中间层软件,又称为实例,由一系列内存结构和后台进程组成。 在启动数据库时,Oracle首先在内存中获取一定的空间,启动各种用途的后台进程,即创建一个数据库实例,然后由实例装

2、载数据文件和重做日志文件,最后打开数据库。用户操作数据库的过程实质上是与数据库实例建立连接,然后通过实例来连接、操作数据库的过程。,数据库与实例的关系 单实例数据库系统 多实例数据库系统,实例组成 内存结构:系统全局区(SGA)和程序全局区(PGA) 后台进程组成,处理数据的内存结构,实 例,后 台 进 程,服务器进程,数据库,实例,SGA,日志缓存,共享池,数据字典 缓冲区,库缓冲区,DBWR,SMON,PMON,CKPT,LGWR,Others,用户进程,服务器进程,PGA,控制文件,数据文件,归档日志 文件,参数文件,口令文件,重做日志 文件,数据库,数据库缓存,8.2 Oracle内存

3、结构,系统全局区(System Global Area,SGA) 程序全局区(Program Global Area,PGA),SGA SGA是由Oracle分配的共享内存结构,包含一个数据库实例共享的数据和控制信息。当多个用户同时连接同一个实例时,SGA数据可供多个用户共享,SGA又称为共享全局区(Shared Global Area)。用户对数据库的各种操作主要在SGA中进行。该内存区随数据库实例的创建而分配,随实例的终止而释放。 PGA PGA是在用户进程连接数据库、创建一个会话时,由Oracle为用户分配的内存区域,保存当前用户私有的数据和控制信息,因此该区又称为私有全局区(Priva

4、te Global Area)。每个服务器进程只能访问自己的PGA,所有服务器进程的PGA总和即为实例的PGA的大小。,8.2.1 SGA,SGA 包含的内存结构有: 数据高速缓冲区(Database Buffer Cache) 共享池(Shared Pool) 重做日志缓冲区(Redo Log Cache) 大型池(Large Pool) Java池(Java Pool) 流池(Streams Pool) 其他结构(如固定SGA、锁管理等),(1)数据高速缓冲区,功能 存储从数据文件中检索出来的数据拷贝。应用程序要访问的数据必须从磁盘的数据文件读到数据缓冲区中处理。 在数据缓冲区中被修改后的

5、数据由数据写入进程写到硬盘的数据文件中永久保存。 提高获取和更新数据的性能。,数据高速缓冲区的工作过程,缓冲块的类型 脏缓存块(Dirty Buffers) 脏缓存块中保存的是已经被修改过的数据。当一条SQL语句对某个缓存块中的数据进行修改后,这个缓存块就被标记为脏缓存块。它们最终将由DBWR进程写入数据文件,以永久性地保存修改结 空闲缓存块(Free Buffers) 空闲缓存块中不包含任何数据,它们等待后台进程或服务器进程向其中写入数据。当Oracle从数据文件中读取数据时,将会寻找空闲缓存块,以便将数据写入其中 命中缓存块(Pinned Buffers) 正被使用,或者被显式地声明为保留

6、的缓存块。这些缓存块始终保留在数据高速缓冲区中,不会被换出内存。,缓存块的管理 脏缓存块列表:包含那些已经被修改但还没有写入数据文件的脏缓存块。 LRU列表(Least Recently Used):包含所有的空闲缓存块、命中缓存块和那些还没有来得及移入到脏缓存块列表中的脏缓存块。在该列表中,最近被访问的缓存块被移动到列表的头部,而其他缓存块向列表尾部移动,最近最少被访问的缓存块最先被移出LRU列表,从而保证最频繁使用的缓存块始终保存在内存中。,数据高速缓冲区大小 数据高速缓冲区越大,用户需要的数据在内存中的可能性就越大,即缓存命中率越高,从而减少了Oracle访问硬盘数据的次数,提高了数据库

7、系统执行的效率。然而,如果数据高速缓冲区的值太大,Oracle就不得不在内存中寻找更多的块来定位所需要的数据,反而降低了系统性能。显然需要确定一个合理的数据高速缓冲区大小。 DB_CACHE_SIZE(标准块),(2)重做日志缓冲区,功能 重做日志缓冲区用于缓存用户对数据库进行修改操作时生成的重做记录。 为了提高工作效率,重做记录并不是直接写入重做日志文件中,而是首先被服务器进程写入重做日志缓冲区中,在一定条件下,再由日志写入进程(LGWR)把重做日志缓冲区的内容写入重做日志文件中做永久性保存。在归档模式下,当重做日志切换时,由归档进程(ARCH)将重做日志文件的内容写入归档文件中,重做日志缓

8、冲区的工作过程,重做日志缓冲区的大小 LOG_BUFFER 较大的重做日志缓冲区,可以减少对重做日志文件写的次数,适合长时间运行的、产生大量重做记录的事务。,()共享池,功能 共享池用于缓存最近执行过的SQL语句、PL/SQL程序和数据字典信息,是对SQL语句、PL/SQL程序进行语法分析、编译、执行的区域。 组成 库缓存 库缓存用于缓存已经解释并执行过的SQL语句和PL/SQL程序代码,以提高SQL或PL/SQL程序的执行效率。 包括SQL工作区和PL/SQL工作区 数据字典缓存区 数据字典缓存区保存最常用的数据字典信息,共享池大小 SHARED_POOL_SIZE 合适的共享池大小,可使编

9、译过的程序代码长驻内存,大大降低重复执行相同的SQL语句、PL/SQL程序的系统开销,从而提高数据库的性能。,()大型池,功能 大型池是一个可选的内存配置项,主要为Oracle多线程服务器、服务器I/O进程、数据库备份与恢复操作、执行具有大量排序操作的SQL语句、执行并行化的数据库操作等需要大量缓存的操作提供内存空间。如果没有在SGA区中创建大型池,上述操作所需要的缓存空间将在共享池或PGA中分配,因而影响共享池或PGA的使用效率。 大型池大小 LARGE_POOL_SIZE,()Java池,功能 Java提供对Java程序设计的支持,用于存储Java代码、Java语句的语法分析表、Java语

10、句的执行方案和进行Java程序开发。 Java池大小 JAVA_POOL_SIZE 通常不小于20M,以便安装Java虚拟机,(6)流池,功能 流池是一个可选的内存配置项,用于对流的支持。 流池大小 STREAMS_POOL_SIZE,8.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语句进行动态调整。,S

11、GA自动管理 在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_MEMO

12、RY) /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 LARG

13、E_POOL_SIZE=0; SQLALTER SYSTEM SET STREAMS_POOL_SIZE=0; 如果要取消自动管理,只需将参数SGA_TARGET设置为0即可。,8.2.3 PGA,功能 PGA 是为每一个与Oracle数据库连接的用户保留的内存区,主要存储该连接使用的变量信息和与用户进程交换的信息。是非共享的,只有服务进程本身才能访问它自己的PGA区 组成 由排序区、会话区、游标区以及堆栈区组成 排序区主要用于存放排序操作所产生的临时数据,其大小由初始化参数SORT_AREA_SIZE定义;会话区用于保存用户会话所具有的权限、角色、性能统计信息;游标区用于存放执行游标操作时所

14、产生的数据;堆栈区用于保存会话过程中的绑定变量、会话变量等信息。,Userprocess,Stack space,Session information sort area, cursor information,SGA,Shared SQL areas,SGA,PGA Dedicated server Shared server,Serverprocess,Shared SQL areas,Stack space,sort area, cursor information,8.2.4在OEM中管理数据库实例的内存结构,8.3 Oracle后台进程,Oracle进程概述 Oracle后台进程,

15、8.3.1 Oracle进程概述,进程的概念 进程是操作系统中一个独立的可以调度的活动,用于完成指定的任务。进程与程序的区别在于: 进程是动态的概念,即动态创建,完成任务后立即消亡;而程序是一个静态实体。 进程强调执行过程,而程序仅仅是指令的有序集合。 进程的类型 用户进程 服务器进程 后台进程,用户进程 当用户连接数据库执行一个应用程序时,会创建一个用户进程,来完成用户所指定的任务。 服务器进程 服务器进程由Oracle自身创建,用于处理连接到数据库实例的用户进程所提出的请求。用户进程只有通过服务器进程才能实现对数据库的访问和操作。 服务器进程分为专用服务器进程和共享服务器进程两种。 服务器

16、进程主要完成以下任务: 解析并执行用户提交的SQL语句和PL/SQL程序; 在SGA的数据高速缓冲区中搜索用户进程所要访问的数据,如果数据不在缓冲区中,则需要从硬盘数据文件中读取所需的数据,再将它们复制到缓冲区中; 将用户改变数据库的操作信息写入日志缓冲区中。 将查询或执行后的结果数据返回给用户进程。,后台进程 后台进程作用 为了保证Oracle数据库在任意一个时刻可以处理多用户的并发请求,进行复杂的数据操作,而且还要优化系统性能,Oracle数据库起用了一些相互独立的附加进程,称为后台进程。服务器进程在执行用户进程请求时,调用后台进程来实现对数据库的操作。 后台进程主要完成以下任务: 在内存与磁盘之间进行I/O操作; 监视各个服务器进程状态; 协调各个服务器进程的任务; 维护系统性能和可靠性等。,8.3.2Oracle后台进程,DBWR 数据库写入进程 LGWR 日志写入进程 CKPT 检查点进程 SMON 系统监控进程 PMON 进程监控进程 ARCH 归档进程 RECO 恢复进程

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > PPT模板库 > PPT素材/模板

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号