第9章Oracle11g的体系结构

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

数据库原理与应用(Oracle版)人民邮电出版社2第9章Oracle11g的体系结构9.1Oracle11g体系结构概述9.2逻辑存储结构9.3物理存储结构9.4内存结构9.5进程结构9.6数据字典9.1Oracle11g体系结构概述完整的Oracle数据库系统通常由两部分组成:实例和数据库。数据库是由一系列物理文件的集合(数据文件、控制文件、日志文件、参数文件等),主要功能是保存数据,可以看作是存储数据的容器;实例则是由一组Oracle后台进程/线程以及在服务器分配的共享缓冲区人民邮电出版社39.1Oracle11g体系结构概述实例和数据库之间的关系是:数据库可以由多个实例装载和打开,而实例可以在任何时间装载和打开一个数据库。但是,一个实例在其生存期最多只能装载和打开一个数据库。Oracle体系结构由存储(逻辑、物理)结构、内存结构、进程结构组成。内存结构由SGA、PGA组成。进程结构由用户进程和Oracle进程组成,用户进程是根据实际需要而运行的,并在需要结束后立刻结束。Oracle进程又包括服务器进程和后台进程,是指在Oracle数据库启动后,自动启动的几个操作系统进程。人民邮电出版社49.1Oracle11g体系结构概述Oracle数据库的存储结构分为逻辑存储结构和物理存储结构,这两种存储结构既相互独立又相互联系。人民邮电出版社59.2逻辑存储结构逻辑存储结构主要描述Oracle数据库的内部存储结构,从技术概念上描述在Oracle数据库中如何组织、管理数据。在逻辑上,Oracle将保存的数据划分为若干个小单元来进行存储和维护,高一级的存储单元由一个或多个低一级的存储单元组成。Oracle的逻辑存储单元从大到小依次为:表空间(TableSpace)、段(Segment)、区(Extent)、数据块(DataBlock),逻辑存储结构示意如图9-3所示。人民邮电出版社69.2逻辑存储结构Oracle的逻辑存储结构人民邮电出版社79.2逻辑存储结构表空间(Tablespace)表空间是Oracle中最大的逻辑存储结构,它与物理上的一个或多个数据文件相对应,每个Oracle数据库都至少拥有一个表空间,表空间的大小等于构成该表空间的所有数据文件大小的总和。在安装Oracle时,Oracle数据库系统一般会自动创建一系列表空间(如system)。可以通过数据字典dba_tablespaces查看表空间的信息。人民邮电出版社89.2逻辑存储结构表空间(Tablespace)人民邮电出版社9表空间说明sysaux辅助系统表空间。用于减少系统表空间的负荷,提高系统的作业效率。该表空间由Oracle系统内部自动维护,一般不用于存储用户数据system系统表空间,用于存储系统的数据字典、系统的管理信息和用户数据表等temp临时表空间。用于存储临时的数据,例如存储排序时产生的临时数据。一般情况下,数据库中的所有用户都使用temp作为默认的临时表空间。临时表空间本身不是临时存在的,而是永久存在的,只是保存在临时表空间中的段是临时的。临时表空间的存在,可以减少临时段与存储在其他表空间中的永久段之间的磁盘I/O争用undo撤消表空间。用于在自动撤消管理方式下存储撤消信息。在撤消表空间中,除了回退段以外,不能建立任何其他类型的段。所以,用户不可以在撤消表空间中创建任何数据库对象users用户表空间。用于存储永久性用户对象和私有信息9.2逻辑存储结构段(Segment)按照段中所存储数据的特征,可以将段分为4种类型:1.数据段2.索引段3.临时段4.回滚段人民邮电出版社109.2逻辑存储结构区(Extent)在Oracle数据库中,区是磁盘空间分配的最小单位,由一个或多个数据块组成。当一个段中的所有空间被使用完后,系统将自动为该段分配一个新的区。一个或多个区组成一个段,所以段的大小由区的个数决定。不过,一个数据段可以包含的区的个数并不是无限制的,它由如下两个参数决定。minextents:定义段初始分配的区的个数,也就是段最少可分配的区的个数。maxextents:定义一个段最多可以分配的区的个数。人民邮电出版社119.2逻辑存储结构数据块(Block)数据块(也可以简称为块)是用来管理存储空间的最基本单位,也是最小的逻辑存储单位。Oracle数据库在进行输入输出操作时,都是以块为单位进行逻辑读写操作的。数据块都具有相同的结构,其结构如右图所示。块的默认大小,由初始化参数db_block_size指定,数据库创建完成之后,该参数值无法再修改。通过SHOWPARAMETER语句可以查看该参数的信息,如下:SQLSHOWPARAMETERdb_block_size;NAMETYPEVALUE------------------------------------------------------------db_block_sizeinteger8192人民邮电出版社12块头部表目录行目录空闲空间行空间9.3物理存储结构Oracle的物理存储结构是由存储在磁盘中的操作系统文件所组成的,Oracle在运行时需要使用这些文件。一般Oracle数据库在物理上主要由3种类型的文件组成,分别是数据文件(*.dbf)、控制文件(*.ctl)和重做日志文件(*.log)。人民邮电出版社139.3物理存储结构数据文件数据文件(DataFile)是指存储数据库数据的文件。数据文件一般有以下几个特点。(1)一个表空间由一个或多个数据文件组成。(2)一个数据文件只对应一个数据库。而一个数据库通常包含多个数据文件。(3)数据文件可以通过设置其自动扩展参数,实现其自动扩展的功能。如果想要了解数据文件的信息,可以查询数据字典dba_data_files和v$datafile。其中,dba_data_files主要有如下字段。file_name:数据文件的名称以及存放路径。file_id:数据文件在数据库中的ID号。tablespace_name:数据文件对应的表空间名。bytes:数据文件的大小。blocks:数据文件所占用的数据块数。status:数据文件的状态。autoextensible:数据文件是否可扩展。人民邮电出版社149.3物理存储结构控制文件控制文件(ControlFile)是一个很小的二进制文件,用于描述和维护数据库的物理结构。在Oracle数据库中,控制文件相当重要,它存放有数据库中数据文件和日志文件的信息。【例】使用数据字典v$controlfile,查看当前数据库的控制文件的名称与路径,具体如下:SQLCOLUMNnameFORMATA50;SQLSELECTnameFROMv$controlfile;NAME-------------------------------------------------E:\APP\ADMINISTRATOR\ORADATA\ORCL\CONTROL01.CTLE:\APP\ADMINISTRATOR\ORADATA\ORCL\CONTROL02.CTLE:\APP\ADMINISTRATOR\ORADATA\ORCL\CONTROL03.CTL人民邮电出版社159.3物理存储结构日志文件重做日志文件是记录数据库中所有修改信息的文件,简称日志文件。归档日志文件用于对写满的日志文件进行复制并保存,具体功能由归档进程ARCn实现,该进程负责将写满的重做日志文件复制到归档日志目标中。警报和跟踪日志文件当一个进程发现了一个内部错误时,它可以将关于错误的信息存储到它的跟踪文件中。而警告文件则是一种特殊的跟踪文件,它包含错误事件的说明,而随之产生的跟踪文件则记录该错误的详细信息。人民邮电出版社169.3物理存储结构参数文件当Oracle实例启动时,它从一个初始化参数文件中读取初始化参数。初始化文件记载了许多数据库的启动参数,如内存、控制文件、进程数等,对数据库的性能影响很大,如果不是很了解,不要轻易乱改写,否则会引起数据库性能下降。人民邮电出版社179.4内存结构Oracle内存结构是影响数据库性能的主要因素之一,其结构如图9-4所示。人民邮电出版社18数据库缓冲区缓存(默认大小)KEEP缓冲池RECYCLE缓冲池数据库缓冲区缓存(大小为nK)数据库缓冲区缓存(大小为nK)大型池Java池流池重做日志缓冲区缓存固定的SGA数据字典缓存控制结构保留池共享SQL区域PL/SQL过程和程序包库缓存共享池软件代码区域系统全局区(SGA)共享内存程序全局区(PGA)非共享内存排序、散列、合并区域会话信息栈空间9.4内存结构系统全局区(SystemGlobalArea,SGA)SGA是Oracle为系统分配的一组共享的内存结构,可以包含一个数据库实例的数据或控制信息。SGA主要包括以下几个部分:1.数据缓冲区数据缓冲区用于存储从磁盘数据文件中读取的数据,供所有用户共享。由于系统读取内存的速度要比读取磁盘快得多,所以数据缓冲区的存在可以提高数据库的整体效率。2.日志缓冲区日志缓冲区用于存储数据库的修改操作信息。3.共享池共享池用于保存最近执行的SQL语句、PL/SQL程序的数据字典信息,它是对SQL语句和PL/SQL程序进行语法分析、编译和执行的内存区域。共享池主要包括如下两种子缓存。库缓存(LibraryCache)数据字典缓存(DataDictionaryCache)4.大型池大型池,用于提供一个大的缓冲区供数据库的备份与恢复操作使用,它是SGA的可选区域。5.Java池Java池,用于在数据库中支持Java的运行。人民邮电出版社199.4内存结构程序全局区(ProgramGlobalArea,PGA)PGA是Oracle系统分配给一个进程的私有内存区域。PGA的大小由参数pga_aggregate_target决定,可以通过SHOWPARAMETER语句查看该参数的信息,如下:SQLSHOWPARAMETERpga_aggregate_target;NAMETYPEVALUE-------------------------------------------------------pga_aggregate_targetbiginteger20M人民邮电出版社209.4内存结构软件代码区软件代码区存储作为Oracle实例一部分运行的Oracle可执行文件。这些代码区域本质是静态的,只有在安装新软件版本时才会发生变化。Oracle软件代码区通常位于享有特权的内存区,此内存区与其他用户程序分开放置。人民邮电出版社219.5进程结构Oracle包括用户进程和Oracle进程两类。Oracle进程又包括服务器进程和后台进程。(1)用户进程。其主要作用是在客户端将用户的SQL语句传递给服务器进程。用户进程不是实例的组成部分。(2)服务器进程。该进程用于处理用户进程的请求(3)后台进程。Oracle实例包括两部分:SGA和一组后台进程。在任意一个刻,Oracle数据库可以处理多个并发用户请求,进行复杂的数据操作,与些同时还要维护数据库系统使其始终具有良好的性能。为了完成这些任务,Oracle具有一组后台进程保证数据库运行所需的实际维护任务。人民邮电出版社229.5进程结构服务器进程、用户进程和后台进程之间的关系人民邮电出版社239.5进程结构主要的后台进程有:数据库写进程(DBWR)日志写进程(LGWR)系统监控进程(SMON)进程监控进程(PMON)检查点写进程(CKPT)归档进程(ARCn)恢复进程(RECO)封锁进程(LCKn)人民邮电出版社249.6数据字典数据字典(DataDictionary)是Oracle数据库的核心组件,它是由一系列对于用户而言是只读的基础表和视图组成,它保存了关于数据库本身以

1 / 29
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功