oracle的体系结构.ppt

上传人:F****n 文档编号:97209954 上传时间:2019-09-02 格式:PPT 页数:39 大小:597.50KB
返回 下载 相关 举报
oracle的体系结构.ppt_第1页
第1页 / 共39页
oracle的体系结构.ppt_第2页
第2页 / 共39页
oracle的体系结构.ppt_第3页
第3页 / 共39页
oracle的体系结构.ppt_第4页
第4页 / 共39页
oracle的体系结构.ppt_第5页
第5页 / 共39页
点击查看更多>>
资源描述

《oracle的体系结构.ppt》由会员分享,可在线阅读,更多相关《oracle的体系结构.ppt(39页珍藏版)》请在金锄头文库上搜索。

1、专题二 Oracle的体系结构(重点),1.体系结构概述 2.逻辑存储结构 3.物理存储结构 4.实例的内存结构 5.实例的进程结构 6.数据字典,1.体系结构概述,完整的Oracle数据库系统通常由两个部分组成: 实例(INSTANCE)+ 数据库(DATABASE) 数据库是由一系列物理文件的集合(数据文件,控制文件,联机日志,参数文件等)。 实例是由一组Oracle后台进程/线程以及在服务器分配的共享内存区。 数据库和实例之间的关系: 数据库可以由多个实例装载和打开 实例可以在任何时间装载和打开一个数据库 一个实例在其生存期最多只能装载和打开一个数据库,1.体系结构概述,在启动Oracl

2、e数据库服务器时,实际上是在服务器的内存中创建一个Oracle实例(即在服务器内存中分配共享内存并创建相关的后台进程),然后由这个实例来访问和控制磁盘中的数据文件。,Oracle实例和数据库,2.逻辑存储结构,逻辑存储单元从小到大依次为: 数据块(Data Blocks) 盘区(Extent) 段(Segments) 表空间(Table Spaces),数据库的逻辑存储组成,2.逻辑存储结构,2.1数据块(Data Blocks) 数据块是Oracle用来管理存储空间的最小单元,也是执行数据库输入输出操作时的最小单位。 数据块的组成:块头部、表目录、行目录、空闲空间、行空间。,SQL sele

3、ct name,value from V$parameter where name=db_block_size; NAME VALUE - - db_block_size 8192,2.逻辑存储结构,2.2盘区 盘区是Oracle存储分配的最小单位。 盘区是由一系列物理上连续存放的数据块所构成的Oracle存储结构,由一个或多个数据块组成一个盘区,而一个或多个盘区组成一个段。 当一个段中的所有空间被使用完后,系统将自动为该段分配一个新的盘区。,2.逻辑存储结构,2.3段 段是由一系列盘区组成,它也不再是存储空间的分配单位,而是一个独立的逻辑存储结构。 对于具有独立存储结构的对象,它的数据全部存

4、储在保存它的段中。一个段只属于一个特定的数据库对象,每当创建一个具有独立段的数据库对象时,Oracle将为它创建一个段。 在Oracle中,不同类型的数据库对象拥有不同类型的段。根据段中存放的数据库对象类型,将段分为几种类型:数据段、索引段、临时段、回退段和LOB段。,2.逻辑存储结构,2.4表空间 表空间是在Oracle中可以使用的最大的逻辑存储结构,在数据库中建立的所有内容都被存储在表空间中。 一个表空间由一个或多个数据文件组成,一个数据文件只可以属于一个表空间,这是逻辑与物理的统一。 存储空间在物理上表现为数据文件,在逻辑上表现为表空间。 表空间的大小等于构成该表空间的所有数据文件的大小

5、之和。 数据库的大小等于其中所有表空间的大小之和。,2.逻辑存储结构,2.4表空间 在创建数据库时, Oracle会自动创建一些默认的表空间,其中除了用于存储用户数据的普通表空间外,还有SYSTEM表空间、撤销表空间、临时表空间。 (1). SYSTEM表空间(SYSAUX表空间加以辅助),用于存储: 数据字典、内部系统表基表 PL/SQL程序的源代码和解析代码 数据库对象的定义,2.逻辑存储结构,2.4表空间 (2). 撤销表空间,专门用来在自动撤销管理方式下存储撤销信息,即回退信息。 (3).临时表空间。在实例运行过程中, Oracle使用一些临时空间来保存SQL语句执行过程中所产生的临时

6、数据。,2.逻辑存储结构,3.物理存储结构,物理存储结构并不是独立存在的,它与数据库逻辑存储结构之间有着不可分割的联系。 从整体上看,Oracle的数据在逻辑上存储在表空间中,而物理上存储在表空间所对应的数据文件中。,物理存储结构与逻辑存储结构之间的关系,3.物理存储结构,3.1数据文件 数据库物理存储结构主要包括3类物理文件: 数据文件(data file)(*.dbf) 控制文件(control file)(*.ctl) 重做日志文件(redo log file)(*.log) 及一些参数文件,查看数据库文件命令: SQLselect name from v$datafile;,3.物理存

7、储结构,数据文件大致分为以下几类: 系统数据文件(SYSTEM01.DBF、SYSTEMAUX01.DBF) 存放系统表和数据字典。 撤销段文件(UNDOTBS01.DBF) : 存放撤销段数据文件,在数据修改中存储修改之前的记录。 用户数据文件(USER01.DBF、EXAMPLE01.DBF): 存放用户数据。,注意: 临时表空间所对应的临时数据文件是一类比较特殊的数据文件。 临时文件的信息只能通过数据字典视图DBA_TEMP_FILE和动态性能视图V$TEMPFILE来查看;不能像普通数据文件一样通过DBA_DATA_FILES和V$DATAFILE视图来查看。,3.物理存储结构,3.2

8、控制文件 数据库控制文件是一个很小的二进制文件,在其中包含了关于数据库物理结构的重要信息。通过在加载数据库时读取控制文件,Oracle才能找到自己所需的操作系统文件(数据文件、重做日志文件等)。 控制文件对于数据库的成功启动和正常运行是至关重要的。在加载数据库时,实例必须首先找到数据库的控制文件。如果控制文件正常,实例才能加载并打开数据库。但是如果控制文件中记录了错误的信息,或者实例无法找到一个可用的控制文件,数据库将无法加载,当然也法打开。,3.物理存储结构,3.2控制文件 在数据库运行过程中, Oracle会不断更新控制文件的内容,因此控制文件必须在整个数据库打开期间保持可用状态。如果由于

9、某种原因导致控制文件不可用,则数据库将崩溃。 每个数据库必须至少拥有一个控制文件,一个数据库可以同时拥有多个控制文件,但是一个控制文件只能属于一个数据库。 控制文件中的主要信息包括:数据库的名字、检查点信息、数据库创建的时间戳、所有的数据文件、重做日志文件、归档日志文件信息和备份信息等。,3.物理存储结构,3.2控制文件 控制文件信息可以从V$controfile中查询获得,3.物理存储结构,3.3重做日志文件 重做日志文件是记录数据库中所有修改信息的文件 重做日志文件记录两类数据: 1.修改前的数据 2.修改后的数据 当满足一定条件时先将修改操作所产生的重做记录写入重做日志文件中,然后才将内

10、存中的修改结果成批的写入数据文件,最后再提交事务。 重做日志文件是由重做记录组成的,重做记录是由修改向量组成的。 当用户执行一条update语句对某一个表中的记录进行修改时,会生成一条记录。这条记录用多个向量记录下了被这条语句修改过的各个数据块中的信息。,3.物理存储结构,3.3重做日志文件 一旦数据库崩溃,Oracle服务器就使用重做日志文件中的记录来进行数据库的恢复工作。引入重做日志文件的目的就是数据库的恢复。 Oracle使用了多组(group)重做日志。重做日志写进程(LGWR)在任意时刻只能写一组重做日志组,LGWR后台进程正在写的重做日志组称作当前(current)重做日志组。LG

11、WR把完全相同的信息从重做日志缓冲区(redo log buffer)中复制到该组的每个重做日志文件中。它是以循环的方式写重做日志组的。当LGWR写满了一组重做日志时,它就开始写下一组重做日志。这称为日志切换。当写满了最后一组时,LGWR开始写第一组重做日志。,3.物理存储结构,3.3重做日志文件 Oracle用以上这种循环的操作方式的确解决了为了提高数据库系统的效率而产生日志文件不够大的难题。但这种循环操作的方式本身又带来了另一个严重的问题。那就是当LGWR循环写了一圈之后再写重做日志文件组中的文件时,这些重做日志中的信息就要被覆盖掉,从这时起Oracle数据库就无法保证数据库崩溃后能恢复全

12、部提交的数据。为了解决这一问题,Oracle引入了归档(archive)日志的结构。,3.物理存储结构,3.4其他文件 除了上述三种类型的文件外,Oracle还提供了其他一些类型的文件,如: 归档日志文件 参数文件 密码文件 预警日志文件 后台或用户跟踪文件 P27-30,4.实例的内存结构,内存结构是Oracle数据库体系结构中最为重要的部分之一,内存也是影响数据库性能的主要因素。 在Oracle数据库中,服务器内存的大小将直接影响数据库的运行速度,特别是多个用户连接数据库时,服务器必须有足够的内存支持,否则有的用户可能连接不到服务器,或查询速度明显下降。 在Oracle系统的体系结构中,有

13、许多不同的内存区域。不同的内存区域用于不同的目的。Oracle的服务器进程和许多后台进程负责在内存区域中写入、更新、读取和删除数据。,4.实例的内存结构,Oracle的2个主要的内存结构 系统全局区(System Global Area,SGA) 程序全局区(Program Global Area,PGA),4.实例的内存结构,4.1系统全局区SGA 位于系统的共享内存段中,SGA区中的数据可以被所有的服务和后台进程共享。 如果多个用户连接到同一个数据库实例,则实例的SGA区中的数据可被多个用户共享。在数据库实例启动时,SGA的内存被自动分配;当数据库实例关闭时,SGA被回收。 SGA区中的主

14、要包含如下内存结构:数据缓存区、共享池、重做日志缓存、Java池和大型池等结构。,4.实例的内存结构,4.1系统全局区SGA,4.实例的内存结构,4.2程序全局区PGA 程序全局区(PGA)是保存特定服务进程的数据和控制信息的内存结构,这个内存结构是非共享的,只有服务进程本身才能够访问它自己的PGA区。每个服务进程都有它自己的PGA区。 包含如下结构: 私有SQL工作区 会话内存区,5.实例的进程结构,进程是操作系统中一个独立的可以调度的活动,用于完成指定的任务。 进程与程序的区别在于前者是一个动态概念,后者是一个静态实体。程序仅仅是指令的有序集合,而进程则强调执行过程。 进程可以动态地创建,

15、当完成任务后即会消亡。,5.实例的进程结构,Oracle的进程包括三类: 用户进程 服务器进程 后台进程,5.实例的进程结构,服务器进程、用户进程和后台进程之间的关系,5.实例的进程结构,5.1用户进程 用户执行一个Oracle应用程序或启动一个Oracle工具(如SQL*Plus)时,创建一个用户进程来执行相应的用户任务。,相关概念: (1)连接:是一个用户进程与数据库实例之间的一条通信路径,这条通信路径通过操作系统平台中的进程间通信机制或网络连接来实现。 (2)会话:是一个用户到数据库的指定连接。例如当一个用户启动SQL*Plus,并输入正确的用户名和密码连接到一个数据库库后,就为该用户创

16、建了一个会话。会话在用户连接到实例的过程中始终存在,直到用户断开连接或终止应用程序为止。,会话是通过连接来建立的;同一个用户可以通过建立多个连接来创建到Oracle数据库的多个会话。,5.实例的进程结构,5.2服务器进程 服务器进程就是代表客户会话完成工作的进程。负责在用户进程和Oracle实例之间调度请求和响应。应用向数据库发送的SQL语句就是由这些进程接收并执行。 当用户进程提交查询之后,服务器进程则负责执行该查询语句,即将数据从磁盘读入缓存,获取查询结果,然后向用户进程返回结果。即使响应出现了某些错误,服务器进程也会把错误信息发回用户进程,以便用户进程进行合适的处理。 在Oracle数据库中可以同时存在两种类型的服务器进程: 专用服务器进程:只能为一个用户进程提供服务。 共享服务进程:可以为多个用户进程提供服务。,5.实例的进程结构,5.3后台进程 Oracle实例包括两部分:SGA和一组后台进程。 在任意一个刻,Oracle数据库可以处理多个并发用户请求,进行复杂的数据

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


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

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