Oracle数据库应用与开发案例教程-电子教案-王红 02.第二章 Oracle数据库体系结构

上传人:E**** 文档编号:89428031 上传时间:2019-05-25 格式:PPT 页数:67 大小:472KB
返回 下载 相关 举报
Oracle数据库应用与开发案例教程-电子教案-王红 02.第二章 Oracle数据库体系结构_第1页
第1页 / 共67页
Oracle数据库应用与开发案例教程-电子教案-王红 02.第二章 Oracle数据库体系结构_第2页
第2页 / 共67页
Oracle数据库应用与开发案例教程-电子教案-王红 02.第二章 Oracle数据库体系结构_第3页
第3页 / 共67页
Oracle数据库应用与开发案例教程-电子教案-王红 02.第二章 Oracle数据库体系结构_第4页
第4页 / 共67页
Oracle数据库应用与开发案例教程-电子教案-王红 02.第二章 Oracle数据库体系结构_第5页
第5页 / 共67页
点击查看更多>>
资源描述

《Oracle数据库应用与开发案例教程-电子教案-王红 02.第二章 Oracle数据库体系结构》由会员分享,可在线阅读,更多相关《Oracle数据库应用与开发案例教程-电子教案-王红 02.第二章 Oracle数据库体系结构(67页珍藏版)》请在金锄头文库上搜索。

1、Oracle数据库应用 与开发案例教程,主编 王红 中国水利水电出版社,2019/5/25,2,Oracle数据库应用 与开发案例教程,第二章 Oracle数据库体系结构,2019/5/25,Oracle数据库应用与开发案例教程,3,第二章 Oracle数据库体系结构,2.1 内存结构 2.2 进程结构 2.3 物理结构 2.4 逻辑结构 2.5 数据字典,2019/5/25,Oracle数据库应用与开发案例教程,4,2.1内存结构,数据库实例被启动后,实例中的各种信息,如当前数据库实例的会话信息、数据缓存信息、Oracle进程之间的共享信息、常用数据和日志缓存信息等,都存储在系统分配的若干个

2、内存区域中。内存结构是Oracle数据库体系结构中最为重要的部分之一,也是影响数据库性能的主要因素。,2019/5/25,Oracle数据库应用与开发案例教程,5,内存结构,Oracle中的基本内存结构包括: 1. 系统全局区SGA(System Global Area) 2. 程序全局区PGA(Program Global Area),2019/5/25,6,SGA,系统全局区SGA是Oracle为实例分配的一个共享内存区域,该实例的所有进程将共享SGA所包含的数据和控制信息,所以SGA又称作共享全局区(Shared Global Area)。每个实例都有自己的SGA。当实例启动时,Orac

3、le为其分配SGA;当用户关闭数据库实例时,操作系统将通过释放SGA来回收这些内存空间。,Oracle数据库应用与开发案例教程,2019/5/25,7,SGA的主要组成部分,SGA的主要由数据库缓冲区缓存、重做日志缓冲区、共享池、Java池、大型池和其他结构组成。 1)数据库缓冲区缓存(Database Buffer Cache) 数据库缓冲区缓存用于缓存用户最近使用过的数据。当该缓冲区中的数据达到一定量或满足一定条件时,Oracle才将它们写入磁盘。这样可以减少磁盘读写次数,提高系统的存取效率,改善系统性能。,Oracle数据库应用与开发案例教程,2019/5/25,8,SGA的主要组成部分

4、,Oracle数据库应用与开发案例教程,2019/5/25,9,SGA的主要组成部分,2)重做日志缓冲区(Redo Log Buffer) 重做日志缓冲区用于缓存数据库的所有修改操作信息,这些修改操作信息称为重做项,主要用于数据库恢复。当重做日志缓冲区的日志信息达到缓冲区大小的1/3,或者每隔三秒,或日志信息存储容量达到1MB时,日志写入进程LGWR就会将该缓冲区中的日志信息写入到日志文件中。重做日志缓冲区是一个循环使用的缓冲区,其大小由LOG_BUFFER参数确定。,Oracle数据库应用与开发案例教程,Oracle数据库应用与开发案例教程,2019/5/25,10,SGA的主要组成部分,3

5、)共享池(Shared Pool) 共享池包括代码库缓存(Library Pool),数据字典缓存(Data Dictionary Pool)和其他缓存(Other Cache)。共享池用于缓存最近使用过的数据定义、最近执行过的SQL语句、PL/SQL程序单元、执行计划和Java类等。共享池的大小由初始化参数SHARED_POOL_SIZE指定,默认大小为8M。 Oracle如果长时间运行,共享池可能会出现碎片,可以执行下面的语句来清除共享池内的全部数据:ALTER SYSTEM FLUSH SHARED_POOL。,Oracle数据库应用与开发案例教程,2019/5/25,11,SGA的主要

6、组成部分,4)Java池(Java Pool) Java池用于在Oracle数据库中支持Java的运行,为Java虚拟机JVM(Java Virtual Machine)中的Java代码和数据提供内存服务。如果用户用Java编写了一个存储过程,Oracle中的JVM会使用Java池来处理此Java存储过程。,Oracle数据库应用与开发案例教程,2019/5/25,12,SGA的主要组成部分,5)大型池(Large Pool) 大型池是一个可选的内存结构,它可以根据需要进行配置。大型池通常用来提供一个大的内存区来执行数据库的备份与恢复等操作。 【例题2-1】查看SGA各分区的大小。 【例题2-

7、2】查看SGA中共享池、java池和大型池的信息。 【例题2-3】查看SGA最大值。 【例题2-4】设置SGA的共享池大小为50M。,Oracle数据库应用与开发案例教程,2019/5/25,13,SGA管理方式,SGA内存管理可以采用以下两种方式: 1)手工管理:由管理员设置SGA内部各个组件的大小。 2)自动管理:管理员设置SGA_TARGET参数后,由Oracle自动分配db_cahche_size、shared_pool_size、large_pool_size、java_pool_size和streams_pool_size等参数;其他数据库缓冲区缓存、日志缓冲区等仍需由管理员手工分

8、配。 无论是采用手工管理还是自动管理方式,所分配的各个SGA组件的内存之和不得大于 SGA_MAX_SIZE。,Oracle数据库应用与开发案例教程,2019/5/25,14,PGA,除了SGA内存区域外,Oracle实例中的内存还包括程序全局区PGA。PGA是Oracle系统分配给一个服务进程的私有区域,主要包括与指定服务进程相关的堆栈区(Stack Area)、会话区(Session Area)、排序区(Sort Area)和游标区(Cursor Area)。PGA专门用来保存服务进程的数据和控制信息等。,Oracle数据库应用与开发案例教程,2019/5/25,15,PGA,1)堆栈区(

9、Stack area):保存会话中的绑定变量、会话变量以及SQL语句运行时的内存结构信息。 2)会话区(Session area):保存与会话相关的角色、权限和性能统计等信息。 3)排序区(Sort area):用户执行含有排序操作的SQL语句时,先将数据放入排序区,在排序区对数据进行排序后,再将排序的结果返回给用户。 4)游标区(Cursor area):当运行带有游标的PL/SQL语句时,Oracle会为该语句分配游标区。,Oracle数据库应用与开发案例教程,2019/5/25,16,PGA的主要参数,1)SORT_AREA_SIZE:表示用于排序操作的PGA区域大小,默认为64KB;

10、2)SORT_AREA_RETAINED_SIZE:表示排序完成后已排序数据所占PGA的内存量; 3)HASH_AREA_SIZE:表示用于支持连接操作的PGA区域大小,默认是SORT_AREA_SIZE的两倍; 4)BITMAP_MERGE_AREA_SIZE:表示用于位图索引合并的PGA区域大小,默认为1MB; 5)CREATE_BITMAP_AREA_SIZE:表示用于创建位图索引的PGA区域大小,默认为8MB。,Oracle数据库应用与开发案例教程,2019/5/25,17,PGA管理方式,PGA工作区的管理可以采用自动和手工两种方式,这是由参数WORKAREA_SIZE_POLICY

11、的取值决定的,当其取值为auto时采用自动管理方式,当其取值为manual时采用手工分配方式。 当采用自动方式管理PGA时,由PGA_AGGREGATE_TARGET参数指定各工作区内存总和。当把PGA_AGGREGATE_TARGET参数值设置为0时,WORKAREA_SIZE_POLICY自动设置为manual,这时SQL工作区大小由WORKAREA_SIZE参数设置。,Oracle数据库应用与开发案例教程,2019/5/25,18,PGA管理方式,自动PGA内存管理相对于手动PGA内存管理有很多优点:当用户连接少时,手动PGA内存管理不管有多少可用内存都按照预设值进行分配,而自动PGA内

12、存管理会根据当空闲内存来进行分配;当用户连接多时,手动PGA内存管理会完全按照预设值分配内存,自动PGA内存管理会根据当前连接情况进行分配。,Oracle数据库应用与开发案例教程,2019/5/25,19,PGA管理方式,【例题2-5】显示PGA的大小。 【例题2-6】修改PGA的信息并查看修改后的值。 【例题2-7】设置PGA管理方式为自动方式。 【例题2-8】查看PGA各个区域分配的大小。,Oracle数据库应用与开发案例教程,2019/5/25,20,SGA与PGA比较,Oracle数据库应用与开发案例教程,2019/5/25,Java Web开发技术,21,2.2进程结构,进程是具有独

13、立数据处理功能的正在执行的程序,是系统进行资源分配和调度的一个独立单位。Oracle使用多个进程来运行Oracle代码的不同部分,每个进程完成指定的工作。Oracle系统的进程可以分为两类,一类是用户进程,主要是指在客户端运行的应用程序或者Oracle工具(如SQL*PLUS);一类是Oracle进程,主要是指运行Oracle数据库服务代码的服务进程和后台进程。,2019/5/25,22,2.2进程结构,Oracle数据库应用与开发案例教程,2019/5/25,23,用户进程,用户进程主要用来运行应用程序或Oracle工具代码,完成用户指定的任务,它不是实例的组成部分。 1)用户进程的建立 当

14、用户运行一个应用程序(例如Pro*C程序)或者一个Oracle工具(比如企业管理器或者SQL *Plus)时,Oracle会创建一个相应的用户进程。,Oracle数据库应用与开发案例教程,2019/5/25,24,用户进程,2)连接和会话 连接是用户进程和Oracle实例之间的连接通道。会话是一个用户通过用户进程到Oracle实例的特定连接。一个会话从用户连接时开始,用户中断连接或者退出数据库应用程序时终止。不使用共享服务器的情况下,Oracle为每个用户会话创建一个服务进程。而在共享服务器下,多个用户会话可以共享一个服务进程。,Oracle数据库应用与开发案例教程,2019/5/25,25,

15、服务进程,Oracle通过创建服务进程来响应连接到这个实例的用户进程的处理请求,用户进程总是通过服务进程完成与Oracle的通信。服务进程负责完成用户进程和Oracle实例之间的调度请求和响应,主要执行下列任务: 1)解析和运行应用程序发布的SQL语句。 2)如果应用程序所需的数据块不在SGA的数据库缓冲区缓存中,服务进程负责从磁盘的数据文件中将其读取到SGA的数据缓存区中。 3)以应用程序可以处理的信息方式返回结果。,Oracle数据库应用与开发案例教程,2019/5/25,26,后台进程,为了提高系统性能并能够协调多个用户的并发请求,Oracle数据库启动时会启动多个后台进程,作为Orac

16、le实例的一部分,后台进程是运行在服务器端的一些程序,这些进程以有效的方式为并发建立的多个用户提供对数据库的IO操作,系统监视,日志归档等服务。通过查看V$BGPROCESS视图可以得到关于当前实例后台进程的信息。后台进程主要包括数据库写入进程DBWn,日志写入进程LGWR,系统监视进程SMON,进程监视进程PMON,检查点进程CKPT和归档进程ACRn等。,Oracle数据库应用与开发案例教程,2019/5/25,27,后台进程,Oracle数据库应用与开发案例教程,2019/5/25,28,后台进程,1. 数据库写入进程DBWn(Database Writer Process) DBWn将缓存中修改过的记录条目写入数据文件。 初始化参数DB_WRITER_PROCESSES指定了DBWn进程的数量。DBWn进程最多可以启动20个。如果用户在启动时没有指定这个参数,Oracle会根据CPU和处理器组的数量来设置DB_WRITER_PROCESSES参数。,Oracle数据库应用与开发案例教程,2019/5/25,29,后台进程,2. 日志写入进程LGWR(Log Writer

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

当前位置:首页 > 高等教育 > 大学课件

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