您好,欢迎访问三七文档
当前位置:首页 > IT计算机/网络 > 数据库 > 第2章 Oracle的体系结构
1第2章Oracle的体系结构数据库的体系结构是从某一角度来分析数据库的组成和工作过程,以及数据库如何管理和组织数据,因此,这部分内容对全面深入地掌握Oracle数据库系统是至关重要的,对于初学者而言,体系结构与基本理论的学习会涉及到大量新的概念和术语,掌握这些概念和术语后对于以后的学习会如虎添翼。2本章知识要点:•Oracle实例与数据库•Oracle数据库的物理存储结构•Oracle数据库的逻辑存储结构•逻辑存储结构与物理结构的关系•Oracle实例的内存结构•Oracle实例的进程结构•了解主要后台进程的作用•理解Oracle数据库中数据字典的作用32.1Oracle体系结构概述•完整的Oracle数据库系统通常由两个部分组成:实例(INSTANCE)和数据库(DATABASE)。数据库是由一系列物理文件的集合(数据文件,控制文件,联机日志,参数文件等);实例则是由一组Oracle后台进程/线程以及在服务器分配的共享内存区。文件文件文件文件文件数据库SGA后台进程后台进程后台进程后台进程后台进程后台进程后台进程实例2.2逻辑存储结构•逻辑存储结构是Oracle数据库存储结构的核心内容,对Oracle数据库的所有操作都会涉及到其逻辑存储结构。数据库的逻辑结构是从逻辑的角度分析数据库的构成,即创建数据库后形成的逻辑概念之间的关系。在逻辑上,Oracle将保存的数据划分为一个个小单元来进行存储和维护,高一级的存储单元由一个或多个低一级的存储单元组成。4数据库...表空间表空间段段盘区数据块盘区数据块段段数据库...表空间表空间段段盘区数据块盘区数据块段段2.2.1数据块•数据块是Oracle用来管理存储空间的最小单元,也是执行数据库输入输出操作时的最小单位。相对应地,操作系统执行输入输出操作的最小单位为一个操作系统块的大小。在操作系统中,执行I/O操作是以操作系统块为单位,而在Oracle中,执行的I/O操作以Oracle数据块为单位。562.2.2盘区•盘区是由一系列物理上连续存放的数据块所构成的Oracle存储结构,由一个或多个数据块组成一个盘区,而一个或多个盘区组成一个段。当一个段中的所有空间被使用完后,系统将自动为该段分配一个新的盘区。盘区是Oracle存储分配的最小单位。72.2.3段•段是由一系列区组成的,它也不再是存储空间的分配单位,而是一个独立的逻辑存储结构。对于具有独立存储结构的对象,它的数据全部存储在保存它的段中。一个段只属于一个特定的数据库对象,每当创建一个具有独立段的数据库对象时,Oracle将为它创建一个段。2.2.4表空间•表空间是在Oracle中用户可以使用的最大的逻辑存储结构,用户在数据库中建立的所有内容都被存储在表空间中。Oracle使用表空间将相关的逻辑结构组合在一起,表空间在物理上与数据文件相对应,每一个表空间是由一个或多个数据文件组成的,一个数据文件只可以属于一个表空间,这是逻辑与物理的统一。82.3物理存储结构•与逻辑存储结构相比,物理存储结构相对简单并且更容易理解。但是物理存储结构并不是独立存在的,它与数据库逻辑存储结构之间有着不可分割的联系。从整体上看,Oracle的数据在逻辑上存储在表空间中,而物理上存储在表空间所对应的数据文件中。9数据库表空间数据文件段区Oracle块OS块逻辑存储结构物理存储结构2.3.1数据文件•数据库中的数据在物理上保存在若干个操作系统文件中,这些操作系统文件就是数据文件。一个表空间在物理上对应于一个或多个数据文件,而一个数据文件只能属于一个表空间。数据文件是操作系统文件,Oracle通过表空间创建数据文件,从硬盘中获取存储数据所需的物理存储空间,一个数据文件只能属于惟一的一个表空间。102.3.2控制文件•数据库控制文件是一个很小的二进制文件,在其中包含了关于数据库物理结构的重要信息。通过在加载数据库时读取控制文件,Oracle才能找到自己所需的操作系统文件(数据文件、重做日志文件等)。•控制文件对于数据库的成功启动和正常运行是至关重要的。在加载数据库时,实例必须首先找到数据库的控制文件。如果控制文件正常,实例才能加载并打开数据库。但是如果控制文件中记录了错误的信息,或者实例无法找到一个可用的控制文件,数据库将无法加载,当然也法打开。112.3.3其他文件•除了上述三种类型的文件外,Oracle还提供了其他一些类型的文件,如参数文件、归档日志文件、跟踪和密码文件等。本节将对这些类型的文件进行简单地介绍。122.4实例的内存结构•内存结构是Oracle数据库体系结构中最为重要的部分之一,内存也是影响数据库性能的主要因素。在Oracle数据库中,服务器内存的大小将直接影响数据库的运行速度,特别是多个用户连接数据库时,服务器必须有足够的内存支持,否则有的用户可能连接不到服务器,或查询速度明显下降。132.4.1系统全局区•系统全局区SGA是由一组内存结构组成,它是由所有用户进程共享的一块内存区域。如果多个用户连接到同一个数据库实例,则实例的SGA区中的数据可被多个用户共享。在数据库实例启动时,SGA的内存被自动分配;当数据库实例关闭时,SGA被回收。SGA区中的主要包含如下内存结构:数据缓存区、共享池、重做日志缓存、Java池和大型池等结构。142.4.2程序全局区•程序全局区(PGA)是保存特定服务进程的数据和控制信息的内存结构,这个内存结构是非共享的,只有服务进程本身才能够访问它自己的PGA区。每个服务进程都有它自己的PGA区,各个服务进程PGA区的总和即为实例的PGA区的大小。152.5实例的进程结构•进程是操作系统中一个独立的可以调度的活动,用于完成指定的任务。进程与程序的区别在于前者是一个动态概念,后者是一个静态实体。程序仅仅是指令的有序集合,而进程则强调执行过程。进程可以动态地创建,当完成任务后即会消亡。16共享池数据缓冲区日志缓冲区SGADataDataDataDataDataDataData数据文件日志文件组DBWRARCH磁盘或磁带CKPT服务器进程LGWR用户进程PMONLCKnSMONRECO2.5.1用户进程•连接是一个用户进程与数据库实例之间的一条通信路径,这条通信路径通过操作系统平台中的进程间通信机制或网络连接来实现。会话则是一个用户到数据库的指定连接。例如当一个用户启动SQL*Plus,并输入正确的用户名和密码连接到一个数据库库后,就为该用户创建了一个会话。会话在用户连接到实例的过程中始终存在,直到用户断开连接或终止应用程序为止。17SQLconnectsystem/admin已连接。SQLselectusername,sid,serial#,server,status2fromv$session3whereusername=USER;USERNAMESIDSERIAL#SERVERSTATUS-------------------------------------------------------------------SYSTEM13066DEDICATEDACTIVE2.5.2服务器进程•服务器进程就是代表用户会话完成工作的进程,应用向数据库发送的SQL语句就是由这些进程接收并执行。在Oracle数据库中可以同时存在两种类型的服务器进程:一种类型是专用服务器进程,一个专用服务进程只能为一个用户进程提供服务;另一种是共享服务进程,一个共享服务进程可以为多个用户进程提供服务。182.5.3后台进程•Oracle实例包括两部分:SGA和一组后台进程。在任意一个刻,Oracle数据库可以处理多个并发用户请求,进行复杂的数据操作,与些同时还要维护数据库系统使其始终具有良好的性能。为了完成这些任务,Oracle具有一组后台进程保证数据库运行所需的实际维护任务。19PMONSMONRBCOSGA块缓存区重做日志缓存区远程数据库CKPTDBWnLGWRARCnLMDOLCKnLMSnLMON远程数据库集群实例数据文件联机重做文件归档日志2.6数据字典•数据字典是Oracle数据库的核心组件,它是由一系列对于用户而言是只读的基础表和视图组成,它保存了关于数据库本身以及其中存储的所有对象的基本信息。可以认为数据字典记录了数据库实例自身的重要信息。20SQLselectname,valuefromv$sga;NAMEALUE------------------------------FixedSize1333312VariableSize310380480DatabaseBuffers58720256RedoBuffers6201344
本文标题:第2章 Oracle的体系结构
链接地址:https://www.777doc.com/doc-3972434 .html