Oracle体系结构.ppt

上传人:小飞机 文档编号:5442091 上传时间:2023-07-07 格式:PPT 页数:54 大小:1.78MB
返回 下载 相关 举报
Oracle体系结构.ppt_第1页
第1页 / 共54页
Oracle体系结构.ppt_第2页
第2页 / 共54页
Oracle体系结构.ppt_第3页
第3页 / 共54页
Oracle体系结构.ppt_第4页
第4页 / 共54页
Oracle体系结构.ppt_第5页
第5页 / 共54页
点击查看更多>>
资源描述

《Oracle体系结构.ppt》由会员分享,可在线阅读,更多相关《Oracle体系结构.ppt(54页珍藏版)》请在三一办公上搜索。

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

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

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

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

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

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

7、_.trc服务器进程跟踪文件主要用于跟踪SQL语句用于诊断SQL语句的性能,并做出相应的调整名称为_ora_.trc,14,逻辑存储结构,数据库的逻辑结构是面向用户的,描述了数据库在逻辑上是如何组织和存储数据数据库的逻辑结构支配一个数据库如何使用其物理空间。数据库数据(表、索引、簇)物理上存放在数据文件中,而逻辑上则存放在表空间中Oracle数据库使用表空间、段、区间、数据块等逻辑结构管理对象空间,15,逻辑存储结构,一个Oracle数据库可以拥有多个表空间,每个表空间可包含多个段,每个段由若干个区间组成,每个区间包含多个数据块,每个Oracle数据块由多个OS物理磁盘块组成。表空间由多个物理

8、文件支持,具体存储表空间中的各对象,16,表空间(Tablespace),用表空间将相关的逻辑结构进行分组一个Oracle数据库中至少要包含一个SYSTEM表空间和一个SYSAUX表空间(10g引入)一般还包含数据表空间、索引表空间、临时表空间和UNDO表空间等表空间的空间使用信息存储于数据文件中(使用位图,称为本地管理的表空间)存储在数据字典中(称为数据字典管理的表空间)一个表空间只能属于一个数据库,17,表空间(Tablespace),系统表空间SYSTEM表空间 Oracle在SYSTEM表空间中存储数据库的数据字典存储全部PL/SQL的源代码和编译后的代码大量使用PL/SQL的数据库应

9、该有足够大的SYSTEM表空间。SYSTEM表空间被保留用于存放系统信息,用户数据对象不应保存在SYSTEM表空间中SYSAUX表空间Oracle 10g新增加的辅助系统表空间数据库组件将SYSAUX表空间作为存储数据的默认位置,18,表空间(Tablespace),非系统表空间UNDO表空间UNDOTBS1保存事务回退(Rollback)信息不可存放表、索引等需要持久保存的数据对象用户表空间USERS存放用户的私有信息和用户创建的数据库对象临时表空间TEMP用于存放临时表和临时数据样例表空间EXAMPLE在创建数据库时,若选择安装示例方案,将创建样例表空间存储人力资源、订单输入、联机目录、产

10、品介绍、信息交换和销售历史等示例方案,19,表空间(Tablespace),表空间在实际工程中的应用Oracle建议将不同类型的数据部署到不同的表空间提高数据访问性能便于数据管理、备份、恢复等操作一个Oracle数据库应用方案应该包括专用的数据表空间(可能需要建立多个)索引表空间(可能需要建立多个)临时表空间表空间对应的数据文件分开存储到不同的磁盘上SYSTEM表空间应该只包含系统数据(如数据字典),20,表空间(Tablespace),表空间状态和工作模式联机表空间与脱机表空间联机表空间中的数据对用户是可用的脱机表空间中的数据对用户是不可用的DBA基于数据库维护的目的,可将表空间临时脱机以阻

11、止普通用户对数据的访问SYSTEM表空间必须始终保持联机只读表空间和可读写表空间一个新的表空间创建时,总是一个可读写表空间当一个表空间的数据不能被改变时(如用于数据仓库应用的历史数据),可以将其设置为只读表空间,21,段(Segment),段由一个或多个区间组成,用于存储特定对象的数据Oracle以区间为单位为段分配空间段不可以跨表空间,一个段只能属于一个表空间。但段可以跨表空间文件Oracle提供十几种段类型,22,段(Segment),常将各种形式的数据表对应的段称为数据段一个Oracle数据库中的常见段可归为4种数据段索引段:存储表表记录关键字及对应记录的ROWID临时段:存放SQL语句

12、操作的数据回退段:存放数据更新事务中更新前的数据,23,区(Extent),表空间中的一片连续空间称为区间区间是Oracle进行空间分配的逻辑单元,是Oracle数据库的最小存储分配单元一个区间一定属于某个段Oracle根据段的存储特性确定区间的大小属于段的区间在段删除时才成为自由空间区间不可以跨数据文件,只能存在于某一个数据文件中,24,数据库管理“区”的几个主要存储参数:,INITIALNEXTMAXEXTENTSMINEXTENTSPCTINCREASEINITRANSNTKXTRANS,段建立时分配的第一个区的大小(单位:字节)段内分配的下一个增量区大小(单位:字节)分配给段的区总数。

13、建立段时分配的区总数(即段的最小区 数量)为段分配的增量区超过上一个区的百分比。为初始数量的DML事务条目(并发访问数据块中的行)保留的预分配空间数量。当多个事务同时访问同一数据块的行时,为数据块中每个DML事务的条目分配的空间。,25,块(Data Block),数据块也称为Oracle块Oracle在数据文件上执行I/O操作的最小单位尺寸为OS磁盘块大小的整数倍,2/4/8/16/32KB数据块未写满数据,保留部分修改数据时用头部:保存数据块的地址、表目录、行目录以及为事务保留的空间数据:在数据块的底部空闲区:在中间,保留用于以后的数据更新,26,块(Data Block),设计策略:以空

14、间换取时间,改善系统性能使用PCTFREE和PCTUSED参数来优化块空间的使用:PCTFREE块中保留用于UPDATE操作的空间百分比,当数据占用的空间达到此上限时,新的数据将不能再插入到此数据块中;PCTUSED指定块中数据使用空间的最小百分比,当一个块达到PCTFREE之后经历了一些DELETE操作,在其空间使用下降到PCTUSED后,便可以重新被用于INSERT数据。,27,逻辑结构之间的 关系,块可看成一张张空白纸,多张纸订成一本看成区。区间是Oracle进行空间分配的逻辑单元,当需要记录时,得到一个空本子;空本子写满,可获得另一个空白本子。写满数据的本子放在一个文件袋中,该文件袋就

15、是段多个文件袋将被放入一个文件柜中,该文件柜就是表空间。而整个数据库就是由多个文件柜组成,每个文件柜中存放的是与某一特定类型应用相关的所有文件。,28,Oracle实例,一个Oracle实例只能访问一个数据库独立的内存结构专有的一系列管理进程,29,内存结构,Oracle服务器运行时,内存内容程序代码(PLSQL、Java);关于已经连接的会话的信息,包括当前所有活动和非活动会话;程序运行时必须的相关信息,例如查询计划;Oracle 进程之间共享的信息和相互交流的信息,例如锁;那些被永久存储在外围存储介质上,被cache 在内存中的数据(如redo log 条目,数据块),30,内存结构,组成

16、共享部分(主要是SGA)Oracle进程和一个SGA就构成了一个Oracle实例实例启动时,Oracle自动从系统中分配内存给SGA实例关闭时,操作系统回收内存进程独享部分(主要是PGA),31,是Oracle分配的共享内存区域,包含一个数据库实例的数据和控制信息,系统进程和连接到Oracle的所有用户进程都共享SGA数据,如图所示。,系统全局区(System Global Area,SGA),32,系统全局区(System Global Area,SGA),包含实例数据和控制信息的共享内存结构,特性:SGA构成:数据和控制信息SGA区是可读写的,所有登录用户都能读取SGA中的信息,而在ora

17、cle 做执行操作时,服务进程会将修改的信息写入SGA区SGA是共享的,即当有多个用户同时登录了这个实例,SGA中的信息可以被它们同时访问;一个SGA只服务于一个实例,也就是说,当一台机器上有多个实例运行时,每个实例都有一个自己的SGA,尽管SGA来自于OS的共享内存区,但实例之间不能相互访问对方的SGA区,33,系统全局区(System Global Area,SGA),组成固定SGA(Fixed SGA),100K,后台进程频繁访问数据字典缓存(Data Dictionary Cache)其他信息,如数据库和实例的状态信息、控制并发进程的锁latch等可变SGA(Variable SGA)

18、,因系统参数设置而改变数据库缓冲区(DataBase Buffer Cache)重做日志缓冲(Redo Log Buffer)共享池(Shared Pool)Java池(Java Pool)大池(Large Pool)流池(Streams Pool),10g以后才有,34,数据库缓冲区(Database Buffer Cache)数据库缓冲区中存放着最近从数据文件中读取的数据块。数据库缓冲区又称用户数据高速缓冲区,为所有与该实例相链接的用户进程所共享。,数据块缓冲区的容量受物理容量限制:在Oracle9i中,数据库缓存的大小可以直接由初始化参数DB_CACHESIZE指定,该参数可以直接以K字

19、节或M字节为单位来设置数据库缓存的大小。,系统全局区(System Global Area,SGA),35,SGA之数据库缓冲区(Database Buffer Cache),多缓冲池配置不同buffer cache类型,实现不同的cache数据目的保持缓冲池(Keep Buffer Pool)缓存需要永久驻入内存的数据块由db_keep_cache_size或buffer_poor_keep指定回收缓冲池(Recycle Buffer Pool)缓存块一旦使用完毕将立即清除由db_recycle_cache_size或buffer_poor_ recycle指定默认的标准缓存池,由db_ca

20、che_size指定,管理策略:最近最少使用链表,36,共享存储区(Shared Pool),也称之为共享SQL池 共享SQL池(Shared SQL Pool)相当于程序高速缓冲区,所有的用户程序都存放在共享SQL池中。SQL共享池包括库高速缓存、数据字典高速缓存和服务器控制结构。用于缓存与SQL或PL/SQL,数据字典、锁资源以及其他控制结构相关的数据 共享池的大小取决于init.ora文件参数SHARED_POOL_SIZE,它是以字节为单位的。重做日志缓冲区(Redo Log Buffer)对数据库进行修改的任何事务(Transaction)在记录到重做日志之前都必须首先放到重做日志缓

21、冲区中。重做日志缓冲区是专为此开辟的一块内存区域,重做日志缓存中的内容将被LGWR后台进程随时写入重做日志文件。重做日志缓存是一个循环缓存区,在使用时从顶端向底端写入数据,然后再返回到缓冲区的起始点循环写入。重做日志缓冲区的大小(以字节为单位)由init.ora文件中的LOGBUFFER参数决定。,3.1.3 软件结构(实例结构,内存结构),37,Java存储区(Java Pool),也称之为Java池。Java池为Java命令提供语法分析。大型存储区(Large Pool)共享服务器将大型存储区的分配堆用作会话内存,通过并行执行,将其用作消息缓冲区;通过备份,将其用作磁盘I/O缓冲区。该值通

22、过初始化文件参数LARGE_POOL_SIZE指定。缓冲池把大数据集与其他的应用程序分开,以减少它们争夺数据块缓冲区内相同的资源。可以在SGA中创建多个缓冲池。,3.1.3 软件结构(实例结构,内存结构),38,程序全局区(Program Global Area,PGA),存放单个Oracle服务进程的内存区域服务进程启动时创建,存放其需要的数据和控制信息,包含进程使用的OS资源信息,及进程状态信息进程意外中止时,能够及时释放和清除这些资源进程使用的Oracle共享资源信息存储于SGA中是非共享的,不需要Latch保护,一个服务进程只能访问自己的PGA区,包括排序区、用户私人会话信息和堆栈空间

23、等。注:专有服务器(Dedicated Server)模式:1会话1进程多线程服务(Multi-Thread Server)模式:n会话共享1进程,39,Oracle进程,进程又称任务是OS中一个极为重要的概念一个进程执行一组操作,完成一个特定的任务。进程与程序的区别进程是一个动态概念,强调执行过程动态创建,完成任务后即会消亡程序是一个静态实体,是指令的有序集合,40,Oracle进程,分类用户进程当用户运行一个应用程序时,系统就为它建立一个用户进程用户进程执行的是一个应用程序或Oracle工具程序的代码,以完成用户所指定的任务用户进程不是实例的一部分服务进程处理用户进程的请求,它与用户进程相

24、通讯,为用户进程请求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进程,后台进程,4

25、4,Oracle进程,后台进程如果一个服务进程意外中止,Oracle将启动PMON进程释放该进程所占用的资源,并由SMON进程执行事务恢复工作分离服务进程、调度进程:网络环境中有效,实现用户进程和Oracle通讯;单机环境中,用户进程和相应服务进程合并,45,附录:,数据字典是Oracle数据库的核心组件,对用户来说,是由只读类型的表和视图组成,保存着关于数据库系统本身及其存储的所有对象的基本信息,一个数据字典包括基础表,动态性能视图及数据字典视图。数据字典视图又包含ALL视图,USER视图和DBA视图。基础表:存储相关数据库信息的表,包括表、索引、约束,以及所有其他数据库对象结构的信息,是O

26、racle系统的核心。只有Oracle才能写和读取这些表。,46,附录:,动态性能视图:是一种在Oracle操作过程中,用于记录当前数据库的活动的“虚拟”表的集合,以V$开头。ALL视图:包含用户查询表时可以访问的所有对象的信息。USER视图:每个数据库用户都拥有属于自己的USER视图,在USER视图中包含了该用户模式下所有对象的信息。DBA视图:在DBA数据字典视图中包含着全部数据库对象的信息,只能被数据库管理员查询。授予系统权限SELECT ANY TABLE的用户都能查询DBA视图。,47,系统全局区(System Global Area,SGA),SGA的查询视图,48,SGA之数据库缓冲区(Database Buffer Cache),Database Buffer Cache的参数配置,49,SGA之数据库缓冲区(Database Buffer Cache),Database Buffer Cache的查询视图,50,SGA之共享池(Shared pool),Shared pool的参数配置,51,SGA之共享池(Shared pool),Shared pool的查询视图,52,PGA相关参数,参数,53,PGA相关视图,PGA的查询视图,54,大脑-控制文件文件夹-表空间数据的仓库-数据文件有备无患-回退段黑匣子-重做日志组历史档案-归档日志,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号