




已阅读5页,还剩105页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
精选,1,数据库开发技术第3章Oracle体系结构,福建工程学院,精选,2,本章要点,Oracle服务器体系结构Oracle实例Oracle内存结构Oracle进程结构Oracle数据库逻辑存储结构Oracle数据库物理存储结构,精选,3,3.1Oracle服务器体系结构概述,数据库系统是一个存储和管理数据记录的系统,通常由DB、DBMS及其开发工具、应用系统和用户组成。其中,DB实现数据存储功能,DBMS是数据库和其它部分的中间层,具有对数据库的管理和控制功能,开发工具、应用系统和用户通过DBMS可以实现对数据库的操作和数据存储。,精选,4,3.1Oracle服务器体系结构概述,Oracle服务器Oracle服务器由Oracle数据库和Oracle实例组成。Oracle数据库是指Oracle保存数据的一系列物理结构和逻辑结构,主要由一系列操作系统文件组成。Oracle实例就是在运行状态下的Oracle软件,主要是由操作系统的内存结构和一些进程组成。,精选,5,Oracle体系结构,OS,RAM,DISK,Net,精选,6,Oracle构架,实例内存结构后台进程,PMONSMONDBWRLGWRCKPT其他,数据库,数据文件,数据文件,数据文件,控制文件,控制文件,日志文件,日志文件,参数文件,归档日志文件,口令文件,SGA,用户进程,服务器进程,PGA,共享池,数据缓冲区,日志缓冲区,精选,7,3.1Oracle服务器体系结构概述,Oracle服务器1、Oracle数据库Oracle数据库是一个存储数据的容器,由一些操作系统文件组成,它的基本功能是存储数据库全部的数据,数据的种类主要包括用户数据、控制数据以及操作信息等。数据库文件可分为数据文件、控制文件和重做日志文件三类。,精选,8,Oracle数据库文件,精选,9,3.1Oracle服务器体系结构概述,Oracle服务器2、Oracle实例Oracle实例是运行在内存中的Oracle软件,主要包括Oracle内存结构和一些Oracle进程。在启动Oracle服务器时,实际上是在内存中创建一个Oracle实例,然后由这个实例访问和控制数据库文件的存取。,精选,10,Oracle实例,精选,11,3.1Oracle服务器体系结构概述,Oracle服务器3、用户进程和其它进程用户进程是当用户执行一个Oracle应用程序(如Pro*C/C+),或启动一个Oracle工具(如SQL*Plus)时,Oracle所创建的用于管理这些应用程序或Oracle工具与Oracle实例通信的进程。用户进程不是实例的一部分。,是一些试图连接数据库的软件,精选,12,用户进程连接Oracle实例,精选,13,3.1Oracle服务器体系结构概述,Oracle服务器工作过程以取款过程为例,跟踪Oracle对这一事务的执行过程,了解Oracle各组成部分的功能和Oracle服务器的工作过程。1)首先通过银行柜员机查询银行卡上存款情况。柜员机接受请求后,向远程服务器发出SQL语句:SELECTUSER,ACCOUNTFROMBANK_ACCOUNTWHEREPASEWORD123456ANDACCOUNT_ID1938743228;,精选,14,3.1Oracle服务器体系结构概述,Oracle服务器工作过程SQL语句通过网络传送到服务器端,服务器进程接收到SQL语句后,检查共享池中是否保存有该SQL语句解析后的程序代码。如果SQL不在共享池中,服务器进程将解析SQL语句,然后执行此程序,否则从共享池中取出SQL语句直接执行。服务器将保存有存款数量的数据块从数据文件中读出并放到SGA的数据高速缓存中。一旦存款数据放进数据高速缓冲区中,客户进程即可读出此数据并将其返回至柜员机。,精选,15,3.1Oracle服务器体系结构概述,Oracle服务器工作过程(3)根据存款情况从银行卡上取出一部分现金。柜员机接收取款数量后,形成下列SQL语句并发送到服务器:UPDATEBANK_ACCOUNTSETACCOUNT_BALANCE=100WHEREPASEWORD123456ANDACCOUNT_ID1938743228;,精选,16,3.1Oracle服务器体系结构概述,Oracle服务器工作过程Oracle按下列步骤执行UPDATE语句:(1)用户进程通过服务器进程把该语句传给Oracle实例;(2)服务器进程在共享池中查找该SQL的可执行版本。如果找到,则转向第(4)步,否则执行第(3)步;(3)解析这条SQL语句,并将其可执行版本送入共享池;(4)执行此SQL语句;(5)服务器进程在数据高速缓存中查找该语句处理的数据,如果有,则转向第(7)步;否则,执行第(6)步;(6)从数据库文件中把数据读入数据高速缓冲区;(7)在回退段中记录原来的存款数量;(8)在重做日志中生成该事务的一个重做日志项;(9)将数据高速缓冲区中的存款数据改为取款后的数据;(10)LGWR进程在重做日志文件中记录已完成事务;(11)DBWn进程在数据文件中记录取款后的数据;,精选,17,3.1Oracle服务器体系结构概述,数据字典1.数据字典的概念数据字典是Oracle数据库中最重要的逻辑结构之一,它是由一些只读的基础表和视图组成。在这些基础表中,保存着Oracle服务器所有的信息。,精选,18,3.1Oracle服务器体系结构概述,数据字典1.数据字典的概念数据字典中的信息主要包括:数据库物理结构和逻辑结构的定义数据的完整性约束信息数据库的安全信息审计信息数据库运行时的性能和统计信息其它关于数据库的基本信息,精选,19,3.1Oracle服务器体系结构概述,数据字典2.数据字典的结构基础表数据字典中的数据都是保存在基础表中的。用户视图大多数用户通过从视图而不是从基表进行选择来检查数据字典。它们将基表数据解码为有用的信息,使用连接和WHERE子句来简化基表信息。,精选,20,3.1Oracle服务器体系结构概述,数据字典3.数据字典的作用获取有关用户、模式对象和存储结构的信息,从而控制和管理服务器工作。任何数据库用户都可从DD中读取关于数据库的信息,从而实现对数据库进行相关的开发、修改和维护等操作。DBA可以从数据字典中获取数据库的各种参数信息和运行状态信息,从而进行有效的数据库管理。Oracle服务器在执行DDL语句时对其进行修改,精选,21,3.1Oracle服务器体系结构概述,数据字典4.用户视图用户视图也叫静态数据字典视图,内容是基本表中的数据,只有基本表改变后,视图的内容才随之改变。,精选,22,3.1Oracle服务器体系结构概述,数据字典4.数据字典视图类别,精选,23,3.1Oracle服务器体系结构概述,数据字典4.用户视图(1)“USER_”为前缀的用户视图通常包含执行查询的用户所拥有的对象的信息,这类视图可以被一般用户使用。,例如,用户SCOTT想知道自己拥有那些表。SQLSELECTTABLE_NAME,TABLESPACE_NAMEFROMUSER_TABLES;结果将会显示用户SCOTT所拥有的全部表的表名和表空间情况。TABLE_NAMETABLESPACE_NAME-BONUSSYSTEMDEPTSYSTEMEMPSYSTEM,精选,24,3.1Oracle服务器体系结构概述,数据字典4.用户视图(2)ALL_为前缀的用户视图通常包含包括执行查询的用户所拥有的对象信息及授权给该用户所拥有的对象信息,这类视图可以被一般用户使用。,例如,用户SCOTT想知道自己能够访问那些表。SQLSELECTTABLE_NAME,TABLESPACE_NAMEFROMALL_TABLES;结果将会显示用户SCOTT所能访问的全部表的表名和表空间情况。TABLE_NAMETABLESPACE_NAME-DUALSYSTEMSYSTEM_PRIVILEGE_MAPSYSTEMTABLE_PRIVILEGE_MAPSYSTEMSTMT_AUDIT_OPTION_MAPSYSTEM,精选,25,3.1Oracle服务器体系结构概述,数据字典4.用户视图(3)DBA_为前缀的用户视图则包含所有数据库对象的信息,而不管其所有者是谁,这类视图只能被具有DBA权限的用户或被授予了SELECTANYTABLE权限的用户使用。,如:以用户SCOTT登录Oracle服务器,执行下述语句:SQLSELECTTABLE_NAME,TABLESPACE_NAMEFROMDBA_TABLES;结果将会显示如下提示信息:ERROR位于第1行:ORA-00942:表或视图不存在,精选,26,3.1Oracle服务器体系结构概述,数据字典4.用户视图现在以用户SYSTEM登录Oracle服务器,查询数据库用户信息。SQLSELECTTABLE_NAME,TABLESPACE_NAMEFROMDBA_TABLES;结果将会显示系统中所有表的表名和表空间情况。TABLE_NAMETABLESPACE_NAME-SEG$SYSTEMCLU$SYSTEMOBJ$SYSTEM,精选,27,常用数据字典用户视图,说明:每个视图都对应着一个“DBA_”、一个“ALL_”和一个“USER_”视图。,精选,28,Oracle服务器体系结构概述,数据字典5、动态性能表-V$视图Oracle服务器在运行过程中,会将当前服务器的运行状态记录在内存中的一些“虚拟”表中,这些“虚拟”表称之为动态性能表。Oracle在动态性能表的基础上建立了动态性能视图,这些动态性能视图由前缀V_$标示,其公共同义词具有前缀V$或GV$,因此,动态性能视图一般又称为V$视图。,精选,29,常用的动态性能视图,精选,30,Oracle服务器体系结构概述,数据字典例如,使用V$SGA视图查询SGA情况。首先用SYS帐户,以SYSDBA连接身份登录SQL*Plus,执行下列命令:SQLSELECT*FROMV$SGA;结果显示为:NAMEVALUE-FixedSize453492VariableSize109051904DatabaseBuffers25165824,精选,31,Oracle服务器体系结构概述,数据字典例如,使用V$FIXED_TABLE视图可看所有动态性能表和动态性能视图的信息。SQLSELECT*FROMV$FIXED_TABLE;结果显示为:NAMEOBJECT_IDTYPETABLE_NUM-X$KQFTA4294950912TABLE0X$KQFVI4294950913TABLE1X$KQFVT4294951149TABLE2,精选,32,3.1Oracle服务器体系结构概述,数据字典6.其它视图例如,下面的代码以另一种方式显示当前用户(如:scott)已创建的所有表Select*fromtab;TNAMETABTYPECLUSTERID-ACCOUNTTABLEBONUSTABLEDEPTTABLEEMPTABLERECEIPTTABLESALGRADETABLE已选择6行。,精选,33,3.2Oracle实例,Oracle实例是运行在内存中的Oracle软件,主要包括Oracle内存结构和一些Oracle进程。在启动Oracle服务器时,实际上是在内存中创建一个Oracle实例,然后由这个实例访问和控制数据库文件的存取。,精选,34,3.2Oracle实例,实例的概念1.实例实例就是运行状态下的Oracle软件,主要是由内存结构和一些进程组成。在Oracle中,每一个数据库至少有一个与之对应的实例,但一个实例只能打开和使用一个数据库。,精选,35,Oracle体系结构,OS,RAM,DISK,Net,精选,36,Oracle实例,精选,37,3.2Oracle实例,实例的概念2.实例的组成系统全局区SGA。后台进程。,精选,38,3.2Oracle实例,实例的概念实例可以实现数据库的访问和控制功能。单节点服务器多节点服务器,精选,39,3.2Oracle实例,实例的概念例如:假定有一台计算机上有两个数据库,分别称作ORCL和TEACH,如果这两个数据库分别有自己的SGA和独立的Oracle服务器进程集,那么就有了两个数据库实例。为了不致使这两个数据库混淆,每个实例都要用称为SID(SystemIdentifier,系统标识符)的符号来标识。,精选,40,3.3Oracle内存结构,内存结构是Oracle服务器体系结构中最重要的组成部分之一,是决定Oracle服务器整体性能的关键因素。,精选,41,3.3Oracle内存结构,内存结构的组成系统全局区(SGA):在实例启动的时候分配,是Oracle实例中的一个基本部分程序全局区(PGA):服务器进程启动时分配,与SGA区不同的是,PGA不是一个共享全局区,而是一个私有区。,精选,42,3.2Oracle内存结构,内存结构的组成Oracle内存结构保存有以下信息:解析后的SQL语句和PL/SQL程序代码连接数据库的所有会话信息缓存数据,包括用户执行SQL语句和PL/SQL程序生成的数据和重做日志数据Oracle运行所需要的信息,如数据字典信息等Oracle进程共享和通信所需要的信息,例如锁信息。,精选,43,3.2Oracle内存结构,系统全局区(1)SGA的结构数据库高速缓存(DatabaseBufferCache)重做日志缓存(RedoLogBuffer)共享池(SharedPool)Java池(JavaPool)大型池(LargePool)数据字典高速缓存(DataDictionaryCache)其它信息存储结构,精选,44,SGA结构图,精选,45,3.2.1系统全局区(SGA),数据库高速缓存数据库高速缓存(DatabaseBufferCache)是SGA的一个缓冲存储区,暂存有从数据文件中读取的数据,Oracle可以对这些数据进行各种数据库操作,并且连接到Oracle数据库的所有用户可以共享其中的数据。,精选,46,数据库高速缓存(DatabaseBufferCache)存放最近使用的数据采用最近最少使用(LRU)算法来管理空间。有关参数:db_block_buffersdb_block_size,3.2.1系统全局区(SGA),精选,47,重做日志缓存(RedoLogBuffer)存放日志条目由log_buffer参数决定大小,3.2.1系统全局区(SGA),精选,48,共享池包括:字典缓冲区(DateDictionaryCache)库缓冲区(LibraryCache)大小由参数SHARED_POOL_SIZE决定,3.2.1系统全局区(SGA),精选,49,3.2.1系统全局区(SGA),共享池共享池(SharedPool)主要用来存储SQL,PLSQL、过程和包、数据字典、字符设置信息和安全属性等。共享池是SGA中最关键的内存结构之一,太小的共享池会严重影响Oracle的性能和可伸缩性。,精选,50,共享池1.库高速缓存库高速缓存用来保存已经提交给Oracle的SQL语句、解析并执行过的PL/SQL程序。库高速缓存又可分为:共享SQL区在共享SQL区中,保存有执行过的SQL的解析结果和执行计划。共享PL/SQL区共享PL/SQL区就是存储经过解析、编译后的Oracle程序单元(存储过程、函数、包和触发器等)代码的一块内存区域。,3.2.1系统全局区(SGA),精选,51,共享池2.数据字典高速缓存保存数据字典信息也是采取最近最少使用算法来管理空间的。,3.2.1系统全局区(SGA),精选,52,大型池1.大型池的概念大型池(LargePool)是用来暂存大块数据的一个内存结构。它不是Oracle实例必须有的,DBA可根据需要选配。在下述情况下,最好配置大型池:在共享服务器模式下,设置大型池可以用来保存会话信息。较多的I/O服务操作,设置大型池可作为磁盘I/O缓冲区。进行数据库备份或恢复操作,设置大型池可作为磁盘I/O缓冲区。,3.2.1系统全局区(SGA),精选,53,Java池Java池(JavaPool)是为Java程序设置的,用于存储Java的方法和类定义在共享内存中的表示法,以及在调用结束时移植到Java会话空间的Java对象。Java池是一个静态内存结构,它的大小由JAVA_POOL_SIZE设置。取值范围没有限制,可根据操作系统而定。Oracle9i的默认值为24MB。,3.2.1系统全局区(SGA),精选,54,程序全局区或叫进程全局区(PGA)是一个内存区域。它包含单个进程工作时需要的数据和控制信息。与几个进程共享的SGA正相反,PGA是只被一个进程使用的区域,是不共享的。它类似家中的对讲电话,进程的不同部分可以相互通信,但与外界没有联系。PGA在创建进程时分配,在终止进程时回收,3.2.2程序全局区(PGA),精选,55,3.3进程结构,所有Oracle用户必须通过两类程序才能访问数据库,一类是应用程序或Oracle工具,另一类是Oracle代码。这两类程序构成了Oracle服务器的进程结构。,精选,56,进程结构的组成Oracle进程的分类用户进程(UserProcess)用户进程执行的是应用程序代码或Oracle工具代码。Oracle进程Oracle进程执行的是Oracle服务器的代码。它包括服务器进程和后台进程两种。,3.3进程结构,精选,57,3.3.1用户进程,用户进程用户通过用户进程连接到Oracle实例,实现用户命令的提交和执行结果的获取功能。当用户运行应用程序时,Oracle自动为用户建立一个用户进程,用户进程通过用户程序接口(UserProgramInterface,简称UPI)在应用程序和服务器进程之间建立起了一个完整的通信连接。通过这个连接,用户和Oracle服务器建立起了会话,最终实现用户访问数据库。,精选,58,3.3.2服务器进程,服务器进程主要完成以下功能:对用户发出的SQL语句进行语法分析、编译和执行。在数据库高速缓存中搜索所需的数据,如果数据不在数据库高速缓存中,则从磁盘中读取数据,并将数据复制到数据库高速缓存中。将结果返回给用户。,精选,59,服务器进程分类专用服务器进程(DedicatedServerProcess)一个服务器进程只能服务于一个用户进程共享服务器进程(SharedServerProcess)一个服务器进程可以服务于多个用户进程,为多个用户进程共享。,3.3.2服务器进程,精选,60,Oracle服务器工作模式专用服务器模式在专用服务器模式中,Oracle为每一个连接到实例上的用户进程创建一个专用的服务器进程,这个专用服务器进程只为该用户进程提供服务。共享服务器模式在共享服务器模式中,Oracle在创建实例时启动一定数量的共享服务器进程,调度进程从服务器进程共享池中取出一个空闲的共享服务器进程为用户进程服务。,3.3.2服务器进程,精选,61,专用服务器进程在专用服务器模式下,用户进程和服务器进程的数量是相等的。专用服务器进程随着用户进程的产生而产生,随着用户进程的终止而终止,并始终为一个用户进程服务。,3.3.2服务器进程,精选,62,共享服务器进程在共享服务器模式下,用户进程和服务器进程的数量是不相等的。共享服务器进程是在Oracle实例启动时创建的,直到数据库实例停止运行。少数服务进程为任意数量的用户进程提供。,3.3.2服务器进程,精选,63,3.3.3后台进程,必须的后台进程包括:DBWn数据库写进程PMON进程监控进程CKPT检查点进程LGWR日志写进程SMON系统监控进程,精选,64,3.3.3后台进程,可选的后台进程包括:ARCn归档进程QMNn队列监控进程CJQ0作业队列进程RECO恢复进程Dnnn调度进程LMS锁管理服务器进程Snnn共享服务器进程,精选,65,3.3.3后台进程,后台进程Oracle为每个实例创建一组后台进程,这些后台进程执行I/O操作、监控其它进程工作、维护系统的可靠性,为多个用户的并发访问提供有效的服务。,精选,66,精选,67,3.3.3后台进程,后台进程1.DBWn(数据库写进程)DBWn进程负责将数据库高速缓存中“脏”的数据写入到数据文件。在下列情况下,DBWn进程将“脏”数据块写入数据文件:当检查点发生时当数据库高速缓存中“脏”数据块达到一定数量时,在服务器进程需要读入大量的数据文件中的数据,但通过扫描数据库高速缓存没有找到足够的空闲块时发生超时(3秒)时设置表空间为脱机状态时设置表空间为只读状态时删除或删减一个表时备份表空间时,精选,68,3.3.3后台进程,后台进程2.LGWR(日志写进程)LGWR进程是一个管理日志缓冲区的后台进程,负责将重做日志缓冲区的重做项写入到重做日志文件中。在下列情况下,LGWR进程将重做日志缓冲区的数据写入到重做日志文件中:当用户提交一个事务时重做数据占有重做日志缓存13时DBWn进程将数据库高速缓存中的“脏”写入数据文件之前每3秒中执行一次LGWR进程日志切换,精选,69,3.3.3后台进程,后台进程3.CKPT(检查点进程)检查点是Oracle设置的触发事件。当检查点发生时,CKPT进程将更新数据文件和控制文件的头信息,DBWn进程将数据库高速缓存中的“脏”数据块写入数据文件,DBWn进程的运行又会启动LGWR进程将重做日志缓存的内容写入重做日志文件,这样就完全同步了数据文件,日志文件和控制文件的内容。,精选,70,3.3.3后台进程,后台进程3.CKPT(检查点进程)CKPT工作的检查点包括:在重做日志文件切换时将表空间设置为脱机状态时数据库关闭时根据初始化参数LOG_CHECKPOINT_INTERVAL、LOG_CHECKPOINT_TIMEOUT、LOG_CHECKPOINT_TO_ALERT的设置的时间间隔来确定用户触发,精选,71,3.3.3后台进程,后台进程4.SMON(系统监控进程)SMON进程在实例启动时,执行数据库恢复工作。如果数据库非正常关闭,在数据库再次启动时,SMON自动读取重做日志文件,对数据库进行恢复。除此之外,SMON进程还负责清理临时段,收回不再使用的存储空间,以及对表空间中的存储碎片进行整理合并等工作。,精选,72,3.3.3后台进程,后台进程5.PMON(进程监控进程)PMON进程在用户进程出现故障(如用户非正常关闭了应用程序等)时,清除失效的用户进程,释放用户进程所占用的资源。如PMON将回滚未提交的事务,释放锁,释放分配给失败进程的SGA和PGA资源。同SMON进程一样,PMON进程周期性地被唤醒检查是否需要它服务。,精选,73,3.3.3后台进程,后台进程6.ARCn(归档进程)当数据库以归档方式运行的时候,ARCn进程负责将写满的重做日志文件复制到一个或多个指定的目录或存储设备中。这些被复制的目标文件被叫做归档日志文件。,精选,74,3.3.3后台进程,后台进程7.RECO(恢复进程)RECO进程用于解决分布式数据库环境下由于网络或系统故障而失败的事务。8.Dnnn(调度进程)Dnnn存在于共享服务器模式中,负责接受用户进程的请求、调度服务器进程,并将结果返回给用户。,精选,75,3.3.4Oracle服务器工作过程,Oracle按下列步骤执行SELECT语句:(1)用户进程通过服务器进程把该语句传给Oracle实例;(2)服务器进程在共享池中查找该SQL的可执行版本。如果找到,则转向第(4)步,否则执行第(3)步;(3)解析这条SQL语句,并将其可执行版本送入共享池;(4)执行此SQL语句;(5)服务器进程在数据高速缓存中查找该语句处理的数据,如果有,则转向第(7)步;否则,执行第(6)步;(6)从数据库文件中把数据读入数据高速缓冲区;(7)用户进程即可通过服务器进程读出此数据。,精选,76,Oracle按下列步骤执行UPDATE语句:(1)用户进程通过服务器进程把该语句传给Oracle实例;(2)服务器进程在共享池中查找该SQL的可执行版本。如果找到,则转向第(4)步,否则执行第(3)步;(3)解析这条SQL语句,并将其可执行版本送入共享池;(4)执行此SQL语句;(5)服务器进程在数据高速缓存中查找该语句处理的数据,如果有,则转向第(7)步;否则,执行第(6)步;(6)从数据库文件中把数据读入数据高速缓冲区;(7)在回退段中记录原来的存款数量;(8)在重做日志中生成该事务的一个重做日志项;(9)将数据高速缓冲区中的存款数据改为取款后的数据;(10)LGWR进程在重做日志文件中记录已完成事务;(11)DBWn进程在数据文件中记录取款后的数据;,3.3.4Oracle服务器工作过程,精选,77,3.4Oracle数据库存储结构,Oracle数据库是一个数据集合,它的主要功能是存储和检索数据。Oracle数据库采用了两种存储结构:逻辑存储结构和物理存储结构,这两种结构相互独立,互不影响。逻辑存储结构主要是指在Oracle内部使用的组织和管理数据的数据结构;物理存储结构是Oracle在操作系统中存储和管理数据的方式,即保存数据的Oracle文件在操作系统中的存储结构。,精选,78,3.4Oracle数据库逻辑存储结构,Oracle存储结构1.逻辑存储结构块(Block)块是Oracle存储结构中最小的逻辑存储单元,是读写数据文件的最小单位。区(Extent)区是由一定数量连续的块组成的逻辑存储结构,是Oracle进行存储分配的单位。段(Segment)段是由一个或多个区组成的逻辑存储结构,可以用来保存特定的模式对象(表、索引等)。段可以分为数据段、索引段、临时段和回退段四类。表空间(Tablespace)表空间是最高一级的逻辑存储单元,是连接逻辑存储结构和物理存储结构之间的桥梁,表空间建立起了两者之间的对应关系。,精选,79,Oracle通过表空间、段、区间和数据块,实现磁盘空间使用的细粒度控制,精选,80,3.4Oracle数据库逻辑存储结构,Oracle存储结构2.物理存储结构在操作系统级,Oracle以文件的形式组织和管理数据,而这些文件是存储在物理磁盘上的,是具体的物理存在,因此把这种结构叫物理存储结构。Oracle物理存储结构组成包括:数据文件数据文件用来存储所有的数据库数据。控制文件控制文件用来存储数据库的物理结构等信息。重做日志文件重做日志文件用来记录对数据库的所有修改信息。,精选,81,数据库存储结构,精选,82,Database,Physical,Tablespace,Datafile,OSblock,Oracleblock,Segment,Extent,数据库存储结构,精选,83,3.4Oracle数据库逻辑存储结构,Oracle存储结构3.模式对象模式是一个数据库对象的集合。表Oracle数据库中基本的数据单元。视图从表或视图中抽取出来的数据的表现形式。序列Oracle自动生成的一个代码唯一的连续数值列。索引一种与表相关的数据结构。利用索引,Oracle能够提高数据检索的性能。程序单元包括存储过程、函数、程序包、触发器等。同义词表、索引、视图或其它模式对象的一个别名。簇一组由于共享公共列而在物理上存放在一起的一个或多个表。,精选,84,3.4Oracle数据库逻辑存储结构,块1.标准块是Oracle存储结构的最小单位,是Oracle进行存储管理的最小单元。初始化参数DB_BLOCK_SIZE指定的数据块被称为标准块。标准数据块是在创建数据库时设定的,数据库创建完成后,该参数就不能改变。,精选,85,3.4Oracle数据库逻辑存储结构,区区(Extent)是Oracle进行存储空间分配的最小单位,是由一系列物理上连续的块组成的逻辑存储结构。区存在于段中,是段的组成单位。一个或多个数据块组成区,一个或多个区组成一个段。,精选,86,3.4Oracle数据库逻辑存储结构,段1.段的类型在Oracle中,不同类型的模式对象拥有不同类型的段,主要段的类型包括:数据段(DataSegment)数据段用来存储表和簇的数据。主要包括表、分区的表和簇。索引段(IndexSegment)索引段保存索引的索引条目。临时段(TemporarySegment)在临时表空间中保存临时操作的段。回退段(RollbackSegment)回退段主要用来保存数据被事务修改之前的原始数据。,精选,87,3.4Oracle数据库逻辑存储结构,表空间表空间(Tablespace)是OracleDB最高层次的逻辑存储结构,是由一系列数据文件组成的集合,其中保存着由段、区和块等逻辑存储结构描述的各种模式对象。表空间是数据文件的集合,也是段的集合。因此,可以将表空间看作是逻辑存储结构和物理存储结构之间的桥梁,表空间建立起了两者之间的对应关系。,表空间Oracle的文件夹。Oracle使用表空间组织数据库,在将数据插入到数据库之前,必须首先建立表空间,然后将数据插入表空间的一个对象中。,精选,88,3.4Oracle数据库逻辑存储结构,表空间一个表空间必须包含一个或多个数据文件,但是一个数据文件只能属于一个表空间。一个数据库对象可以在一个数据文件中,也可以在多个数据文件中。,精选,89,3.4Oracle数据库逻辑存储结构,表空间每个数据库至少有一个表空间(系统表空间),一个表空间在某一时刻只能属于一个数据库。系统建立表空间的目的是尽量将相同目的的表存放在一起,是为了便于管理及提高使用效率。,精选,90,3.4Oracle数据库逻辑存储结构,精选,91,3.4Oracle数据库逻辑存储结构,表空间3.表空间的查询SQLSELECTTABLESPACE_NAME,STATUSFROMDBA_TABLESPACESTABLESPACE_NAMESTATUS-SYSTEMONLINEUNDOTBS1ONLINETEMPONLINE,精选,92,3.4Oracle数据库逻辑存储结构,表空间3.表空间的查询通过数据字典DBA_FREE_SPACE查询表空间的可用空间状态。SQLSELECTTABLESPACE_NAME,SUM(BYTES)2FROMDBA_FREE_SPACE3GROUPBYTABLESPACE_NAME;结果显示为:TABLESPACE_NAMESUM(BYTES)-CWMLITE11141120DRSYS10813440EXAMPLE524288其中,SUM(BYTES)为总的可用空间。,精选,93,3.5Oracle数据库物理存储结构,Oracle数据库的物理结构是指Oracle在运行过程中存储数据的操作系统文件。这些操作系统文件主要包括数据文件、控制文件、重做日志文件和归档日志文件四种类型。数据库物理结构与逻辑结构是相互联系、密不可分的。一个数据库至少由一个表空间组成,一个表空间可以包含一个或多个数据文件,一个数据文件只能属于一个表空间和一个数据库。控制文件、重做日志文件和归档日志文件不是数据文件,不属于某一个表空间,但是每一个数据库必须包括这些文件。,精选,94,3.5Oracle数据库物理存储结构,数据文件1.数据文件的种类系统数据文件主要用来存储系统数据。撤销数据文件主要用来存储撤销记录。临时数据文件主要用来暂存临时数据。用户数据文件主要用来存储用户数据。,精选,95,3.5Oracle数据库物理存储结构,数据文件2.数据文件的创建在为数据库创建表空间时,Oracle自动为表空间创建一个或几个数据文件。当一个表空间中的数据文件写满后,可以为一个表空间追加一个数据文件。,精选,96,3.5Oracle数据库物理存储结构,数据文件4.数据文件的状态脱机状态在脱机状态下,用户不能访问该数据文件上的数据。联机状态在联机状态下,用户可以访问该数据文件上的数据。,精选,97,3.5Oracle数据库物理存储结构,数据文件5.临时数据文件的特殊性临时数据文件只能存在于临时表空间中,主要用来存储复杂SQL查询语句产生的临时数据信息。同一般的数据文件相比,它有一定的特殊性:临时数据文件不能设置成LOGGING模式临时数据文件不能设置成只读方式不能对临时数据文件改名不能使用ALTERDATABASE语句增加临时数据文件,精选,98,3.5Oracle数据库物理存储结构,数据文件5.数据文件的查询SQLSELECTNAME,STATUS,ENABLED,BYTESFROMV$DATAFILE;结果显示为:NAMESTATUSENABLEDBYTES-D:ORACLEORADATAORADB01SYSTEM01.DBFSYSTEMREADWRITE419430400D:ORACLEORADATAORADB01UNDOTBS01.DBFONLINEREADWRITE209715200D:ORACLEORADATAORADB01CWMLITE01.DBFONLINEREADWRITE20971520,精选,99,3.5Oracle数据库物理存储结构,数据文件5.数据文件的查询SQLSELECTFILE_NAME,TABLESPACE_NAME,BYTESFROMDBA_DATA_FILES;结果显示为:FILE_NAMETABLESPACE_NAMEBYTES-D:ORACLEORADATAORADB01SYSTEM01.DBFSYSTEM419430400D:ORACLEORADATAORADB01UNDOTBS01.DBFUNDOTBS1209715200D:ORACLEORADATAORADB01CWMLITE01.DBFCWMLITE20971520,精选,100,3.5Oracle数据库物理存储结构,控制文件1.控制文件的概念控制文件(ControlFiles)是一个非常小的二进制文件,其中存放有Oracle数据库物理结构(数据文件和重做日志文件等)的信息,是Oracle启动和运行所必须的文件。Oracle系统通过控制文件保持数据库的完整性(Integrity)。,精选,101,3.5Oracle数据库物理存储结构,控制文件2.控制文件的内容控制文件所属的数据库的名字,一个控制文件只能属于一个数据库数据库创建的时间数据文件的名称、位置、联机、脱机状态信息重做日志文件和归档日志文件的名称、位置、联机、脱机状态信息所有表空间信息当前日志序列号最近检查点信息,精选,102,3.5Oracle数据库物理存储结构,控制文件4.控制文件的查询SQLSELECTFROMV$CONTROLFILE;结果显示为:NAME-D:ORACLEORADATAORADB01CONTROL01.CTLD:ORACLEORADATAORADB01CONTROL02.CTLD:ORACLEORADATAORADB01CONTROL03.CTL,精选,103,3.5Oracle数据库物理存储结构,重做日志文件1.重做日志文件的概念重做日志文件(RedoFiles)是Oracle用来记录用户对数据库进行修改操作的文件。在重做日志文件中,用户所作的任何修改操作都以重做项的形式记录在其中,这些重做项描述了被修
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 《中国画的技法与鉴赏:大学美术教案》
- 八月销售活动方案
- 公交公司亲子活动方案
- 公交年底活动方案
- 状物作文我发现蜗牛是害虫350字12篇范文
- 公会郊游活动方案
- 公关公司庆典活动方案
- 公办院校校庆活动方案
- 公司diy圣诞活动方案
- 公司PK大赛庆功宴策划方案
- 酒店餐饮设备电路布线合同
- 12岁体适能课程设计
- 国开2024年秋《学前儿童艺术教育音乐》终结性考核答案
- 外贸英语函电教程 第二版 课件Unit 1 Establishing Business Relations;Unit 2 Inquiries and Offers
- 供应柴油月结算合同范本
- 2024年中考语文试题分类汇编:字音字形(解析版全国)
- GB/T 30893-2024雨生红球藻粉
- 2024年《风力发电原理》基础技能及理论知识考试题库与答案
- 2024秋国家开放大学《外国文学》形考任务1-4答案
- 机械原理课程设计20篇
- 房颤的规范化治疗
评论
0/150
提交评论