您好,欢迎访问三七文档
当前位置:首页 > IT计算机/网络 > 数据库 > 第2讲 Oracle数据库体系结构2
第2章Oracle数据库体系结构Oracle11g数据库目标•理解Oracle的体系结构•理解Oracle的实例及其组成•了解Oracle的物理存储结构•了解Oracle的逻辑存储结构•理解Oracle数据库中数据字典的作用2.1Oracle体系结构概述•Oracle系统的体系结构是指组成Oracle系统的主要组成部分、这些组成部分之间的关系,以及这些部分的工作方式。•在Oracle系统的体系结构中,主要两大块:(1)实例(2)数据库oracle的体系结构口令文件实例系统全局区域(SGA)重做日志缓冲区共享池数据字典高速缓存库高速缓存DBWRSMONPMONCKPTLGWROthers用户进程服务器进程PGA控制文件数据文件数据库数据高速缓存重做日志文件Java池大缓存池参数文件备份日志文件内存磁盘2.2Oracle实例•Oracle实例是由内存区域和后台进程组成。实例系统全局区域(SGA)重做日志缓冲区共享池数据字典高速缓存库高速缓存DBWRSMONPMONCKPTLGWROthers数据高速缓存Java池大缓存池内存区域后台进程如果用户需要访问数据库中的数据,那么在访问数据之前,必须启动Oracle数据库实例。(startupnomount)如果用户启动了Oracle实例,系统就会自动分配一个系统全局区域(SGA),并且启动相应的后台进程。系统全局区(SGA)是一组为系统分配的共享的内存结构,可以包含一个数据库实例的数据和控制信息。如果多个用户连接到同一个数据库实例,则在实例的SGA中数据可为多个用户共享。在数据库实例启动时,SGA的内存被自动分配;当数据库实例关闭时,SGA被回收。SGA按其作用不同,可以分为数据高速缓冲、重做日志缓冲区和共享池。数据高速缓冲主要用来存储经常使用的数据重做日志缓冲区记录了由服务器进程对数据文件所作的改变,以及数据改变的位置。重做日志缓冲区是用系统连续使用和记录的。共享池用来存储经常执行的SQL语句和经常使用的数据字典中的数据。共享池又由库高速缓存和数据字典缓存组成。大缓冲池是数据库管理员能够配置的可选内存空间,可以用于不同类型的内存存储。在执行某些特定类型的操作时,可能需要在内存中使用大量的缓存,这些特定类型的操作包括:•数据库的备份或恢复操作。•执行具有大量排序操作的SQL语句。•执行并行化的数据库操作由于Oracle提供了对Java语言的支持,所以系统提供了Java池。Java池主要用于为Java语言提供语法分析区。Java池的大小由参数JAVA_POOL_SIZE确定。Oracle的后台进程主要是用来提高数据库的性能和可靠性,它可以由多个用户共同使用,为这些并发用户提供各种服务。Oracle后台进程执行输入/输出操作和监视Oracle服务器的其他进程。Oracle的后台进程包括:SMON、DBWR、PMON、CKPT、LGWR和其他进程。2.3Oracle数据库的物理存储结构从物理存储结构上分析:每一个Oracle数据库是主要由三种类型的文件组成:数据文件、日志文件和控制文件,另外还包括一些参数文件。其中:数据文件的扩展名为.DBF;重做日志文件的扩展名为.LOG;控制文件的扩展名为.CTL。2.3.1数据文件•数据文件(DataFile)也叫数据库文件,用于存储数据库数据,包括系统数据(数据字典)、用户数据(表、索引、簇)、UNDO数据等。当建立数据库或表空间时,数据文件是通过DATAFILE选项指定的。•数据库逻辑上是由一个或多个表空间组成,而表空间物理上是由一个或多个数据文件组成。数据库表空间数据文件逻辑物理数据文件数据文件•查看数据文件SQLselectnamefromv$datafile;NAME---------------------------------------------------E:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\SYSTEM01.DBFE:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\UNDOTBS01.DBFE:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\SYSAUX01.DBFE:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\USERS01.DBF2.3.2重做日志文件•日志文件也叫做重做日志文件(RedoLogFiles)。•日志文件用于记录对数据库的修改信息,对数据库所作的修改信息都被记录在日志中。这包括用户对数据库中数据的修改和数据库管理员对数据库结构的修改。如果,只是对数据库中的信息进行查询操作,则不会产生日志信息。•日志文件主要用于数据库恢复。•查看重做日志文件SQLselectmemberfromv$logfile;MEMBER--------------------------------------------------E:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\REDO03.LOGE:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\REDO02.LOGE:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\REDO01.LOG2.3.3控制文件•控制文件(ControlFiles)是一个很小的二进制文件,它用于描述数据库的物理结构。•控制文件一般在安装Oracle系统时自动创建。•控制文件还包括关于数据库的信息数据库的名称数据文件和重做日志文件的名称及其位置时间戳•查看控制文件SQLselectnamefromv$controlfile;NAME----------------------------------------------------------------E:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\CONTROL01.CTLE:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\CONTROL02.CTLE:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\CONTROL03.CTL2.3.4参数文件•除了构成Oracle数据库物理结构的三类主要文件外,Oracle数据库还具有另外一种重要的文件:参数文件(parameterfile)。•参数文件用于定义启动实例所需的初始化参数。例如:db_cache_size、db_block_size、log_buffer等都是在参数文件中定义的。•参数文件包括文本参数文件(textparameterfile)和服务器参数文件(serverparameterfile)两种类型。•在Oracle11g中,既可以使用文本参数文件(PFILE),也可以使用服务器参数文件(SPFILE),并且Oracle建议使用SPFILE来管理和设置初始化参数。通过使用SPFILE,不仅可以简化初始化参数的管理,而且可以使用RMAN备份SPFILE。(1)PFILE在Oracle9i之前,初始化参数都是以文本格式存放的。在Windows平台上,建议将PFILE文件存放在%ORACEL_HOME%\database目录中,文件名为initSID.ora,其中SID为实例名。(2)SPFILESPFILE是以二进制格式存放的。在Window平台上,Oracle建议将SPFILE存放在%ORACLE_HOME%\dbs目录中。文件名为spfileSID.ora。SQLconnsys/adminassysdba已连接。SQLshowparameterspfileNAMETYPEVALUE-----------------------------------------------------------------------------spfilestringE:\ORACLE\PRODUCT\10.2.0\DB_1\DBS\SPFILEORCL.ORA参数名用途db_name定义数据库名称db_domain指定数据库在网络环境中的网络位置instance_name指定实例的唯一名称service_names指定网络服务名control_files指定一个或多个控制文件名db_block_size指定标准oracle块的尺寸db_cache_size指定标准数据高速缓存的尺寸share_pool_size指定共享池的尺寸常用初始化参数(一)参数名用途log_buffer指定重做日志缓冲区的尺寸sga_max_size指定SGA的最大尺寸java_pool_size指定java池的尺寸large_pool_size指定大缓冲池尺寸常用初始化参数(二)2.4Oracle的逻辑存储结构•数据库数据(表、索引、簇)物理上存放在数据文件中,而逻辑上存放在表空间中,Oracle使用表空间、段、区、数据块等逻辑存储结构来管理对象空间,它们的关系如图所示:•Oracle在逻辑上将保存的数据划分成一个个小单元进行存储和管理,高一级的存储单元由一个或多个低一级的存储单元组成。•Oracle的逻辑存储单元从大到小依次为:表空间、段、区和数据块。数据库表空间段区块数据文件OS块逻辑结构物理结构2.4.1表空间•数据库由称为表空间的逻辑单位组成,用户在数据库中建立的所有内容都被存储在表空间中。•表空间是在Oracle中用户可以使用的最大的逻辑存储结构,Oracle使用表空间将相关的逻辑结构组合在一起。•每个Oracle数据库都提前配置了system表空间,它存储了数据字典和系统管理信息。•存储空间在物理上表现为数据文件,而在逻辑上表现为表空间。表空间数据库Data1.Ora1MBData2.Ora1MBSYSTEM表空间Data3.Ora4MBUSER表空间数据文件•表空间的作用(1)控制数据库所占的磁盘空间(2)控制用户所占的空间配额(3)DBA可以将不同类型数据布置到不同位置,提高I/0性能,同时有益于备份或恢复数据。常见的表空间表空间名称对应的数据文件文件存储的内容SystemSystem01.dbf存放系统数据(数据字典)ToolsTools01.dbf为第三方工具或其他Oracle组件提供单独的存储空间TempTemp01.dbf临时表空间UndotbsUndotbs0.dbf当数据库运行在自动撤销管理模式下时(默认情况),使用该表空间来专门存储撤销信息(重做信息)UsersUsers01.dbf为用户的应用提供存储空间sysauxSYSAUX01.DBF存放数据库辅助信息(如OEM资料库)2.4.2段•段是用户建立的数据库对象(如:表,索引,簇等)的存储表示。它是有一个或多个区组成的。•当建立表、索引、簇时,Oracle会为这些对象分配段,以存放它们的数据信息,并且段名与对象名完全相同。•用户建立的每一个表都会有一个在表空间中存储的逻辑段。为用户所建立的对象生成的段都要在磁盘上占用空间。•在Oracle系统中,有4种类型的段,即数据段、索引段、临时段和回滚段(有时也称为撤销段)。2Kb2Kb2Kb2Kb2Kb2Kb2Kb2Kb2Kb2Kb2Kb2Kb2Kb2Kb2Kb2Kb2Kb2Kb2Kb2Kb2Kb2Kb2Kb2Kb2Kb2Kb2Kb2Kb2Kb2Kb2Kb2Kb2Kb2Kb2Kb2Kb2Kb2Kb2Kb2Kb数据块扩展区扩展区段2.4.3区•区(也叫扩展区或盘区)是由一系列物理上连续的数据块所构成的存储结构。•一个或几个连续的数据块组成一个区,而一个或多个区组成一个段。当一个段中的所有空间被使用完后,系统将自动为该段分配一个新的区。2.4.4数据块•数据块是Oracle用来管理存储空间的最基本单元,也是最小的逻辑存储单元。•Oracle数据库在进行输入输出操作时,都是以块为单位进行逻辑读写操作的。数据块的大小由初始化参数DB_BLOCK_SIZE确定,在创建数据库之后不可以修改。2.5数据字典•数据字典记载了数据库的系统
本文标题:第2讲 Oracle数据库体系结构2
链接地址:https://www.777doc.com/doc-5915925 .html