Oracle体系结构.ppt_第1页
Oracle体系结构.ppt_第2页
Oracle体系结构.ppt_第3页
Oracle体系结构.ppt_第4页
Oracle体系结构.ppt_第5页
已阅读5页,还剩49页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、1,内容简要,使用Oracle数据库,必须了解Oracle体系的基本结 构,以及Oracle组件之间的相互关系、他们在结构 中的位置、如何以最佳方式定制系统满足用户的需 要。本讲从物理结构、逻辑结构、内存结构和进程 等方面剖析Oracle的体系结构。,2,Oracle体系概述,基于实例机制的数据服务系统 数据库(Database):数据的存储结构 物理存储结构:实际数据存储单元,如文件或数据块 逻辑存储结构:概念上的数据组织,如表空间、段空间、区、块,模式对象(表、视图等)。 实例(Instance):服务器的内存构成和管理进程 内存结构:SGA,PGA 管理进程:服务器进程(Server p

2、rocess)和后台进程(Oracle Process)。如果服务器处于共享服务器操作模式下,还包括调度程序进程。,3,Oracle存储结构,两个方面,两者是相互关联的 物理存储结构,实际的数据存储单元 逻辑存储结构,数据在概念上的组织,4,物理存储结构,是指数据在OS层的组织管理方式,有: 数据文件(Data files) 控制文件(Control files) 重做日志文件(Redo log files) 其他文件 归档日志文件(Archived log files) 初始化参数文件(Parameter file) 口令文件(Password file) 警告文件(Alert file)

3、服务器进程跟踪文件 后台进程跟踪文件,5,数据文件,数据文件(Data files)用于存储数据库数据,包括系统数据(数据字典)、用户数据(表、索引、簇等)、撤销(Undo)数据、临时数据等。 系统数据是用来管理用户数据和数据库本身的数据 用户数据是用于应用软件的数据,带有应用软件的所有信息,是用户存放在数据库中的信息 撤销数据包含事务的回退信息 临时数据是排序、分组、游标操作等生成的中间过程数据,一般由系统自动管理,6,数据文件,在Oracle数据库中,至少要包含一个数据文件,一个数据文件包括多个OS物理磁盘块。 数据库逻辑上由一个或多个表空间(Tablespace)组成,而表空间物理上则是

4、由一个或多个数据文件组成,如图所示。,7,重做日志文件,用于记录数据库变化 在出现例程失败或介 质故障时恢复数据库 Oracle需要至少两个 重做日志文件组 循环使用重做日志文件组 重做日志文件的配置和大小将会影响到系统性能 Windows下默认创建3个组,每组一个文件,8,重做日志文件,Oracle数据库有两种运行模式 NOARCHIVELOG(非归档日志)模式 为系统默认模式 系统不保留旧的重做日志 有限的恢复能力 ARCHIVELOG(归档日志)模式 所有的事务重做日志都将保存 在一个重做日志被覆盖前为其建立一个副本 在重做日志归档工作完成之前,Oracle不对其进行覆盖,9,重做日志文

5、件,日志管理,10,控制文件,用于记录和维护数据库的物理结构 一个例程只能访问一个数据库,通过控制文件在例程和数据库之间建立关联 Oracle启动时通过控制文件查找数据文件的位置和联机重做日志。 数据库运行时,控制文件被不断更新 数据库至少要包含一个控制文件 控制文件对数据库至关重要,应联机保存多个备份,存储在不同的磁盘上,11,其他文件,归档日志文件 只有在ARCHIVELOG模式下才会生成归档日志文件。 初始化参数文件(Parameter file) 用于定义启动例程所需要的初始化参数,如数据块的大小、内存结构的配置等。 文本格式的参数文件(PFILE) 二进制服务器参数文件(Server

6、 Parameter File,SPFILE) 参数文件的默认位置:ORACLE_HOMEdatabase 文本参数文件的名称格式:init.ora 服务器参数文件的名称格式为:SPFILE.ora,12,其他文件,口令文件(Password file) 存放具有SYSDBA或SYSOPER权限的用户信息 初始特权用户为SYS 口令文件的默认位置:ORACLE_HOMEdatabase 口令文件名称格式:PWD.ora 警告文件(Alert file) 连续的消息和错误信息组成 查看Oracle内部错误也可以监视特权用户的操作 应从文件尾部开始查看 文件位置由初始化参数background_d

7、ump_dest确定 名称格式为alert _.log,13,其他文件,后台进程跟踪文件 用于记载后台进程的警告或错误信息 名称格式为_.trc 服务器进程跟踪文件 主要用于跟踪SQL语句 用于诊断SQL语句的性能,并做出相应的调整 名称为_ora_.trc,14,逻辑存储结构,数据库的逻辑结构是面向用户的,描述了数据库在逻辑上是如何组织和存储数据 数据库的逻辑结构支配一个数据库如何使用其物理空间。 数据库数据(表、索引、簇)物理上存放在数据文件中,而逻辑上则存放在表空间中 Oracle数据库使用表空间、段、区间、数据块等逻辑结构管理对象空间,15,逻辑存储结构,一个Oracle数据库可 以拥

8、有多个表空间, 每个表空间可包含多 个段,每个段由若干 个区间组成,每个区 间包含多个数据块, 每个Oracle数据块由多个OS物理磁盘块组成。 表空间由多个物理文件支持,具体存储表空间中的各对象,16,表空间(Tablespace),用表空间将相关的逻辑结构进行分组 一个Oracle数据库中至少要包含一个SYSTEM表空间和一个SYSAUX表空间(10g引入) 一般还包含数据表空间、索引表空间、临时表空间和UNDO表空间等 表空间的空间使用信息 存储于数据文件中(使用位图,称为本地管理的表空间) 存储在数据字典中(称为数据字典管理的表空间) 一个表空间只能属于一个数据库,17,表空间(Tab

9、lespace),系统表空间 SYSTEM表空间 Oracle在SYSTEM表空间中存储数据库的数据字典 存储全部PL/SQL的源代码和编译后的代码 大量使用PL/SQL的数据库应该有足够大的SYSTEM表空间。 SYSTEM表空间被保留用于存放系统信息,用户数据对象不应保存在SYSTEM表空间中 SYSAUX表空间 Oracle 10g新增加的辅助系统表空间 数据库组件将SYSAUX表空间作为存储数据的默认位置,18,表空间(Tablespace),非系统表空间 UNDO表空间UNDOTBS1 保存事务回退(Rollback)信息 不可存放表、索引等需要持久保存的数据对象 用户表空间USER

10、S 存放用户的私有信息和用户创建的数据库对象 临时表空间TEMP 用于存放临时表和临时数据 样例表空间EXAMPLE 在创建数据库时,若选择安装示例方案,将创建样例表空间存储人力资源、订单输入、联机目录、产品介绍、信息交换和销售历史等示例方案,19,表空间(Tablespace),表空间在实际工程中的应用 Oracle建议将不同类型的数据部署到不同的表空间 提高数据访问性能 便于数据管理、备份、恢复等操作 一个Oracle数据库应用方案应该包括专用的 数据表空间(可能需要建立多个) 索引表空间(可能需要建立多个) 临时表空间 表空间对应的数据文件分开存储到不同的磁盘上 SYSTEM表空间应该只

11、包含系统数据(如数据字典),20,表空间(Tablespace),表空间状态和工作模式 联机表空间与脱机表空间 联机表空间中的数据对用户是可用的 脱机表空间中的数据对用户是不可用的 DBA基于数据库维护的目的,可将表空间临时脱机以阻止普通用户对数据的访问 SYSTEM表空间必须始终保持联机 只读表空间和可读写表空间 一个新的表空间创建时,总是一个可读写表空间 当一个表空间的数据不能被改变时(如用于数据仓库应用的历史数据),可以将其设置为只读表空间,21,段(Segment),段由一个或多个区间组成,用于存储特定对象的数据 Oracle以区间为单位为段分配空间 段不可以跨表空间,一个段只能属于一

12、个表空间。但段可以跨表空间文件 Oracle提供十几种段类型,22,段(Segment),常将各种形式的数据表对应的段称为数据段 一个Oracle数据库中的常见段可归为4种 数据段 索引段:存储表表记录关键字及对应记录的ROWID 临时段:存放SQL语句操作的数据 回退段:存放数据更新事务中更新前的数据,23,区(Extent),表空间中的一片连续空间称为区间 区间是Oracle进行空间分配的逻辑单元,是Oracle数据库的最小存储分配单元 一个区间一定属于某个段 Oracle根据段的存储特性确定区间的大小 属于段的区间在段删除时才成为自由空间 区间不可以跨数据文件,只能存在于某一个数据文件中

13、,24,数据库管理“区”的几个主要存储参数:,INITIAL NEXT MAXEXTENTS MINEXTENTS PCTINCREASE INITRANS NTKXTRANS,段建立时分配的第一个区的大小(单位:字节) 段内分配的下一个增量区大小(单位:字节) 分配给段的区总数。 建立段时分配的区总数(即段的最小区 数量) 为段分配的增量区超过上一个区的百分比。 为初始数量的DML事务条目(并发访问数据块中的行)保留的预分配空间数量。 当多个事务同时访问同一数据块的行时,为数据块中每个DML事务的条目分配的空间。,25,块(Data Block),数据块也称为Oracle块 Oracle在数

14、据文件上执行I/O操作的最小单位 尺寸为OS磁盘块大小的整数倍,2/4/8/16/32KB 数据块未写满数据,保留部分修改数据时用 头部:保存数据块的地址、表目录、行目录以及为事务保留的空间 数据:在数据块的底部 空闲区:在中间,保留用于以后的数据更新,26,块(Data Block),设计策略: 以空间换取时间,改善系统性能 使用PCTFREE和PCTUSED参 数来优化块空间的使用: PCTFREE块中保留用于UPDATE操作的空间百分比,当数据占用的空间达到此上限时,新的数据将不能再插入到此数据块中; PCTUSED指定块中数据使用空间的最小百分比,当一个块达到PCTFREE之后经历了一

15、些DELETE操作,在其空间使用下降到PCTUSED后,便可以重新被用于INSERT数据。,27,逻辑结构之间的 关系,块可看成一张张空白纸,多张纸订成一本看成区。 区间是Oracle进行空间分配的逻辑单元,当需要记录时,得到一个空本子;空本子写满,可获得另一个空白本子。 写满数据的本子放在一个文件袋中,该文件袋就是段 多个文件袋将被放入一个文件柜中,该文件柜就是表空间。 而整个数据库就是由多个文件柜组成,每个文件柜中存放的是与某一特定类型应用相关的所有文件。,28,Oracle实例,一个Oracle实例 只能访问一个数据库 独立的内存结构 专有的一系列管理进程,29,内存结构,Oracle服

16、务器运行时,内存内容 程序代码(PLSQL、Java); 关于已经连接的会话的信息,包括当前所有活动和非活动会话; 程序运行时必须的相关信息,例如查询计划; Oracle 进程之间共享的信息和相互交流的信息,例如锁; 那些被永久存储在外围存储介质上,被cache 在内存中的数据(如redo log 条目,数据块),30,内存结构,组成 共享部分(主要是SGA) Oracle进程和一个SGA就构成了一个Oracle实例 实例启动时,Oracle自动从系统中分配内存给SGA 实例关闭时,操作系统回收内存 进程独享部分(主要是PGA),31,是Oracle分配的共享内存区域,包含一个数据库实例的数据

17、和控制信息, 系统进程和连接到Oracle的所有用户进程都共享SGA数据,如图所示。,系统全局区(System Global Area,SGA),32,系统全局区(System Global Area,SGA),包含实例数据和控制信息的共享内存结构,特性: SGA构成:数据和控制信息 SGA区是可读写的,所有登录用户都能读取SGA中的信息,而在oracle 做执行操作时,服务进程会将修改的信息写入SGA区 SGA是共享的,即当有多个用户同时登录了这个实例,SGA中的信息可以被它们同时访问; 一个SGA只服务于一个实例,也就是说,当一台机器上有多个实例运行时,每个实例都有一个自己的SGA,尽管S

18、GA来自于OS的共享内存区,但实例之间不能相互访问对方的SGA区,33,系统全局区(System Global Area,SGA),组成 固定SGA(Fixed SGA), 100K,后台进程频繁访问 数据字典缓存(Data Dictionary Cache) 其他信息,如数据库和实例的状态信息、控制并发进程的锁latch等 可变SGA(Variable SGA),因系统参数设置而改变 数据库缓冲区(DataBase Buffer Cache) 重做日志缓冲(Redo Log Buffer) 共享池(Shared Pool) Java池(Java Pool) 大池(Large Pool) 流池

19、(Streams Pool),10g以后才有,34,数据库缓冲区(Database Buffer Cache) 数据库缓冲区中存放着最近从数据文件中读取的数据块。数据库缓冲区又称用户数据高速缓冲区,为所有与该实例相链接的用户进程所共享。,数据块缓冲区的容量受物理容量限制:在Oracle9i中,数据库缓存的大小可以直接由初始化参数DB_CACHESIZE指定,该参数可以直接以K字节或M字节为单位来设置数据库缓存的大小。,系统全局区(System Global Area,SGA),35,SGA之数据库缓冲区(Database Buffer Cache),多缓冲池 配置不同buffer cache类

20、型,实现不同的cache数据目的 保持缓冲池(Keep Buffer Pool) 缓存需要永久驻入内存的数据块 由db_keep_cache_size或buffer_poor_keep指定 回收缓冲池(Recycle Buffer Pool) 缓存块一旦使用完毕将立即清除 由db_recycle_cache_size或buffer_poor_ recycle指定 默认的标准缓存池,由db_cache_size指定,管理策略:最近最少使用链表,36,共享存储区(Shared Pool),也称之为共享SQL池 共享SQL池(Shared SQL Pool)相当于程序高速缓冲区,所有的用户程序都存放

21、在共享SQL池中。SQL共享池包括库高速缓存、数据字典高速缓存和服务器控制结构。用于缓存与SQL或PL/SQL,数据字典、锁资源以及其他控制结构相关的数据 共享池的大小取决于init.ora文件参数SHARED_POOL_SIZE,它是以字节为单位的。 重做日志缓冲区(Redo Log Buffer) 对数据库进行修改的任何事务(Transaction)在记录到重做日志之前都必须首先放到重做日志缓冲区中。重做日志缓冲区是专为此开辟的一块内存区域,重做日志缓存中的内容将被LGWR后台进程随时写入重做日志文件。 重做日志缓存是一个循环缓存区,在使用时从顶端向底端写入数据,然后再返回到缓冲区的起始点

22、循环写入。重做日志缓冲区的大小(以字节为单位)由init.ora文件中的LOGBUFFER参数决定。,3.1.3 软件结构(实例结构,内存结构),37,Java存储区(Java Pool),也称之为Java池。 Java池为Java命令提供语法分析。 大型存储区(Large Pool) 共享服务器将大型存储区的分配堆用作会话内存,通过并行执行,将其用作消息缓冲区;通过备份,将其用作磁盘I/O缓冲区。 该值通过初始化文件参数LARGE_POOL_SIZE指定。 缓冲池把大数据集与其他的应用程序分开,以减少它们争夺数据块缓冲区内相同的资源。可以在SGA中创建多个缓冲池 。,3.1.3 软件结构(实

23、例结构,内存结构),38,程序全局区(Program Global Area,PGA),存放单个Oracle服务进程的内存区域 服务进程启动时创建,存放其需要的数据和控制信息,包含进程使用的OS资源信息,及进程状态信息 进程意外中止时,能够及时释放和清除这些资源 进程使用的Oracle共享资源信息存储于SGA中 是非共享的,不需要Latch保护,一个服务进程只能访问自己的PGA区,包括排序区、用户私人会话信息和堆栈空间等。 注: 专有服务器(Dedicated Server)模式:1会话1进程 多线程服务(Multi-Thread Server)模式:n会话共享1进程,39,Oracle进程,

24、进程又称任务 是OS中一个极为重要的概念 一个进程执行一组操作,完成一个特定的任务。 进程与程序的区别 进程是一个动态概念,强调执行过程 动态创建,完成任务后即会消亡 程序是一个静态实体,是指令的有序集合,40,Oracle进程,分类 用户进程 当用户运行一个应用程序时,系统就为它建立一个用户进程 用户进程执行的是一个应用程序或Oracle工具程序的代码,以完成用户所指定的任务 用户进程不是实例的一部分 服务进程 处理用户进程的请求,它与用户进程相通讯,为用户进程请求Oracle后台服务 后台进程 用来管理数据库的读写、恢复和监视工作,41,Oracle进程,注: 当应用和Oracle在同一台机器时,用户进程和相应的服务进程组合成单个进程,以降低系统开销; 当应用和Oracle运行在网络环境时,用户进程通过一个分离服务器进程,与Oracle通信 Oracle 9i支持TCP/IP、使用SSL的TCP/IP、命名管道协议;不支持IPS/SPX、LU6.2协议,42,Oracle进程,后台进程,系统监控进程(SMON)进程监控进程(PMON)数据库写入进程(DBWR)日志写入进程(LGWR)检查点进程(CKPT),43,Oracle进程,后台进程,44,Oracle进程,后台进程 如果一个服务进程意外中止,Oracle将启动PMON进程释放该进程所占用的资源,并由SMON进程执行事务

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论