Oracle逻辑存储结构培训_第1页
Oracle逻辑存储结构培训_第2页
Oracle逻辑存储结构培训_第3页
Oracle逻辑存储结构培训_第4页
Oracle逻辑存储结构培训_第5页
已阅读5页,还剩74页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第6章逻辑存储结构本章内容Oracle逻辑存储结构概述表空间数据块区段本章要求掌握Oracle数据库逻辑结构组成掌握表空间的作用及其管理掌握扩展区的结构,了解扩展区的管理掌握段的作用,了解段的管理6.1逻辑存储结构概述概念逻辑存储结构是从逻辑的角度来分析数据库的构成的,是数据库创建后利用逻辑概念来描述Oracle数据库内部数据的组织和管理形式。在操作系统中,没有数据库逻辑存储结构信息,而只有物理存储结构信息。数据库的逻辑存储结构概念存储在数据库的数据字典中,可以通过数据字典查询逻辑存储结构信息。逻辑结构单元类型数据块:BLOCK区:EXTENT段:SEGMENT表空间:TABLESPACE数据库的存储层次关系DatabaseLogicalPhysicalTablespaceDatafileOSblockOracle

blockSegmentExtent数据库逻辑存储结构之间的关系表空间数据段………

区间数据块(段片)6.2表空间表空间概述表空间的管理7.2.1表空间概述表空间的概念表空间的分类表空间的管理方式表空间的管理策略(1)表空间概念Oracle数据库在逻辑上可以划分为一系列的逻辑空间,每一个逻辑空间就可以称为一个表空间。一个数据库由有一个或多个表空间构成,不同表空间用于存放不同应用的数据,表空间大小决定了数据库的大小。一个表空间对应一个或多个数据文件,数据文件大小决定了表空间的大小。一个数据文件只能从属于一个表空间。表空间是存储模式对象的容器,一个数据库对象只能存储在一个表空间中(分区表和分区索引除外),但可以存储在该表空间所对应的一个或多个数据文件中。若表空间只有一个数据文件,则该表空间中所有对象都保存在该文件中;若表空间对应多个数据文件,则表空间中的对象可以分布于不同的数据文件中。数据库、表空间、数据文件、数据库对象之间的关系(2)表表空空间间的的分分类类系统统表表空空间间SYSTEM表空空间间,,主主要要存存储储::数据据库库的的数数据据字字典典;;PL/SQL程序序的的源源代代码码和和解解释释代代码码,,包包括括存存储储过过程程、、函函数数、、包包、、触触发发器器等等;;数据据库库对对象象的的定定义义,,如如表表、、视视图图、、序序列列、、同同义义词词等等。。SYSAUX表空空间间SYSAUX表空空间间是是Oracle10g新增增的的辅辅助助系系统统表表空空间间,,主主要要用用于于存存储储数数据据库库组组件件等等信信息息,,以以减减小小SYSTEM表空空间间的的负负荷荷。。在通通常常情情况况下下,,不不允允许许删删除除、、重重命命名名及及传传输输SYSAUX表空空间间。。非系系统统表表空空间间撤销销表表空空间间专门门进进行行回回滚滚信信息息的的自自动动管管理理,,由UNDO_TABLESPACE参数数设设置置。临时时表表空空间间专门门进进行行临临时时数数据据管管理理的的表表空空间间在数数据据库库实实例例运运行行过过程程中中,,执执行行排排序序等等SQL语句句时时会会产产生生大大量量的的临临时时数数据据,,这这些些临临时时数数据据将将保保存存在在数数据据库库临临时时表表空空间间中中。。默认认临临时时表表空空间间用户户表表空空间间保存存用用户户数数据据大文文件件表表空空间间与与小小文文件件表表空空间间所谓谓大大文文件件表表空空间间((BigfileTablespace)是是指指一一个个表表空空间间只只包包含含一一个个大大数数据据文文件件,,该该文文件件的的最最大大尺尺寸寸为为128TB(数数据据块块大大小小为为32KB)或或只只32TB(数数据据块块大大小小为为8KB)。。与大大文文件件表表空空间间相相对对应应,,系系统统默默认认创创建建的的表表空空间间称称为为小小文文件件表表空空间间((SmallfileTablespace),,如如SYSTEM表空间、SYSAUX表空间等。小小文件表空间间可以包含多多达1024个数据文件。。小文件表空空间的总容量量与大文件表表空间的容量量基本相似。。(3)表空间的管管理方式字典管理方式式表空间使用数数据字典来管管理存储空间间的分配,当当进行区的分分配与回收时时,Oracle将对数据字典典中的相关基基础表进行更更新,同时会会产生回滚信信息和重做信信息。字典管管理方式将渐渐渐被淘汰。。本地管理方式式在本地管理方方式中,区的的分配和管理理信息都存储储在表空间的的数据文件中中,而与数据据字典无关。。表空间在每每个数据文件件中维护一个个“位图”结构,用于记记录表空间中中所有区的分分配情况,因因此区在分配配与回收时,,Oracle将对数据文件件中的位图进进行更新,不不会产生回滚滚信息或重做做信息。表空间本地管管理方式的优优势:由于在区分配配与回收过程程中不需要对对数据字典进进行访问,提提高了表空间间存储管理操操作的速度和和并发性。能够避免表空空间存储管理理操作中的递递归现象,提提高了存储空空间管理操作作性能。由于本地管理理的临时表空空间在使用过过程中不会产产生任何重做做信息和撤销销信息,因此此既使查询操操作中包含排排序,对数据据库来说也完完全是只读操操作,这样能能够在保留可可查询性同时时,将整个数数据库设置为为只读状态。。这种数据库库可以作为备备用数据库使使用。简化了表空间间的存储管理理,由Oracle自动完成存储储管理操作。。降低了用户对对数据字典的的依赖性。不存在磁盘碎碎片问题,因因为必要的信信息都存储在在数据文件的的位图中,而而不是保存在在数据字典中中(4)表空间管理理策略将数据字典与与用户数据分分离,避免由由于数据字典典对象和用户户对象保存在在一个数据文文件中而产生生I/O冲突。将回滚数据与与用户数据分分离,避免由由于硬盘损坏坏而导致永久久性的数据丢丢失。将表空间的数数据文件分散散保存到不同同的硬盘上,,平均分布物物理I/O操作。为不同的应用用创建独立的的表空间,避避免多个应用用之间的相互互干扰。能够将表空间间设置为脱机机状态或联机机状态,以便便对数据库的的一部分进行行备份或恢复复。能够将表空间间设置为只读读状态,从而而将数据库的的一部分设置置为只读状态态。能够为某种特特殊用途专门门设置一个表表空间,如临临时表空间,,优化表空间间的使用效率率。能够更加灵活活地为用户设设置表空间配配额。7.2.2表空间的管理理(本地管理理方式)创建表空间修改表空间表空间的备份份删除表空间大文件表空间间的管理表空间信息查查询利用OEM管理表空间(1)创建表空间间在创建本地管管理方式下的的表空间时,,应该确定表表空间的名称称、类型、对对应的数据文文件的名称和和位置以及区区的分配方式式、段的管理理方式表空间名称不不能超过30个字符,必须须以字母开头头,可以包含含字母、数字字以及一些特特殊字符(如如#、_、$)等;表空间的类型型包括普通表表空间、临时时表空间和撤撤销表空间;;表空间中区的的分配方式包包括两种方式式:自动扩展展(AUTOALLOCATE)和定制(UNIFORM);段的管理包括括两种方式::自动管理((AUTO)和手动管理理(MANUAL)。创建永久表空空间创建永久表空空间使用CREATETABLESPACE语句来实现,,该语句包含含以下几个子子句:DATAFILE:设定表空间间对应的数据据文件。EXTENTMANAGEMENT:指定表空间间的管理方式式,取值为LOCAL(默认)或DICTIONARY。AUTOALLOCATE(默认)或UNIFORM:设定区的分分配方式。SEGMENTSPACEMANAGEMENT:设定段的管管理方式,其其取值为MANUAL或AUTO(默认)。。为ORCL数据库创建一一个永久性的的表空间,区区自动扩展,,段采用自动动管理方式CREATETABLESPACEORCLTBS1DATAFILE'D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\ORCLTBS1_1.DBF'SIZE50M;为ORCL数据库创建一一个永久性的的表空间,区区定制分配,,段采用自动动管理方式。。CREATETABLESPACEORCLTBS2DATAFILE'D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\ORCLTBS2_1.DBF'SIZE50MEXTENTMANAGEMENTLOCALUNIFORMSIZE512K;为ORCL数据库创建一一个永久性的的表空间,区区自动扩展,,段采用手动动管理方式。。CREATETABLESPACEORCLTBS3DATAFILE'D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\ORCLTBS3_1.DBF'SIZE50MSEGMENTSPACEMANAGEMENTMANUAL;为ORCL数据库创建一一个永久性的的表空间,区区定制分配,,段采用手动动管理方式。。CREATETABLESPACEORCLTBS4DATAFILE'D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\ORCLTBS4_1.DBF'SIZE50MEXTENTMANAGEMENTLOCALUNIFORMSIZE512KSEGMENTSPACEMANAGEMENTMANUAL;创建临时表空空间使用CREATETEMPORARYTABLESPACE语句创建临时时表空间,用用TEMPFILE子句设置临时时数据文件。。需要注意的是是临时表空间间中区的分配配方式只能是是UNIFORM,而不能是AUTOALLOCATE,因为这样才才能保证不会会在临时段中中产生过多的的存储碎片。。为ORCL数据库创建一一个临时表空空间ORCLTEMP1。CREATETEMPORARYTABLESPACEORCLTEMP1TEMPFILE'D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\ORCLTEMP1_1.DBF'SIZE20MEXTENTMANAGEMENTLOCALUNIFORMSIZE16M;临时表空间组组将一个或多个个临时表空间间构成一个表表空间组。当当将临时表空空间组作为数数据库或用户户的默认临时时表空间时,,用户就可以以同时使用该该表空间组中中所有的临时时表空间,避避免了由于单单个临时表空空间的空间不不足而导致数数据库运行故故障。同时,,使用临时表表空间组,可可以保证在一一个简单并行行操作中多个个并行服务的的执行。临时表空间组组不需要显式式创建,为临临时表空间组组指定第一个个临时表空间间时隐式创建建,当临时表表空间组中最最后一个临时时表空间删除除时而隐式地地删除。通过在CREATETEMPORARYTABLSPACE或ALTERTABLESPACE语句中使用TABLESPACEGROUP短语创建临时时表空间组。。为ORCL数据库创建一一个临时表空空间ORCLTEMP2,并放入临时时表空间组temp_group1。同时,将临临时表空间ORCLTEMP1也放入该temp_group1中。CREATETEMPORARYTABLESPACEORCLTEMP2TEMPFILE'D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\ORCLTEMP2_1.DBF'SIZE20MEXTENTMANAGEMENTLOCALUNIFORMSIZE16MTABLESPACEGROUPtemp_group1;ALTERTABLESPACEORCLTEMP1TABLESPACEGROUPtemp_group1;创建撤销表空空间在Oracle10g中引入了撤销销表空间的概概念,专门用用于回滚段的的自动管理。。如果数据库库中没有创建建撤销表空间间,那么将使使用SYSTEM表空间来管理理回滚段。如果数据库中中包含多个撤撤销表空间,,那么一个实实例只能使用用一个处于活活动状态的撤撤销表空间,,可以通过参参数UNDO_TABLESPACE来指定;如果果数据库中只只包含一个撤撤销表空间,,那么数据库库实例启动后后会自动使用用该撤销表空空间。如果要使用撤撤销表空间对对数据库回滚滚信息进行自自动管理,则则必须将初始始化参数UNDO_MANAGEMENT=AUTO。可以使用CREATEUNDOTABLESPACE语句创建撤销销表空间,但但是在该语句句中只能指定定DATAFILE和EXTENTMANAGEMENTLOCAL两个子句,而而不能指定其其他子句。为ORCL数据库创建一一个撤销表空空间。CREATEUNDOTABLESPACEORCLUNDO1DATAFILE'D:\ORACLE\ORADATA\ORCL\ORCLUNDO1_1.DBF'SIZE20M;如果要要在数数据库库使用用该撤撤销表表空间间,需需要设设置参参数UNDO_MANAGEMENT=AUTOUNDO_TABLESPACE=ORCLUNDO1(2)修改改表空空间可以对对表空空间进进行下下列修修改操操作::扩展表表空间间修改表表空间间可用用性修改表表空间间读/写性设置默默认表表空间间表空间间重命命名注意不能将将本地地管理理的永永久性性表空空间转转换为为本地地管理理的临临时表表空间间,也也不能能修改改本地地管理理表空空间中中段的的管理理方式式。扩展表表空间间为表空空间添添加数数据文文件通过ALTERTABLESPACE…ADDDATAFILE语句为为永久久表空空间添添加数数据文文件,,通过过ALTERTABLESPACE…ADDTEMPFILE语句为为临时时表空空间添添加临临时数数据文文件。。为ORCL数据库库的ORCLTBS1表空间间添加加一个个大小小为10MB的新数数据文文件。。ALTERTABLESPACEORCLTBS1ADDDATAFILE'D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\ORCLTBS1_2.DBF'SIZE10M;为ORCL数据库库的ORCLTEMP1表空间间添加加一个个大小小为10MB的临时时数据据文件件。ALTERTABLESPACEORCLTEMP1ADDTEMPFILE'D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\ORCLTEMP1_2.DBF'SIZE20M;改变数数据文文件的的大小小可以通通过改改变表表空间间已有有数据据文件件的大大小,,达到到扩展展表空空间的的目的的。将ORCL数据库库的ORCLTBS1表空间间的数数据文文件ORCLTBS1_2.DBF大小增增加到到20MB。ALTERDATABASEDATAFILE'D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\ORCLTBS1_2.DBF'RESIZE20M;改变数数据文文件的的扩展展方式式如果在在创建建表空空间或或为表表空间间增加加数据据文件件时没没有指指定AUTOEXTENDON选项,,则该该文件件的大大小是是固定定的。。如果果为数数据文文件指指定了了AUTOEXTENDON选项,,当数数据文文件被被填满满时,,数据据文件件会自自动扩扩展,,即表表空间间被扩扩展了了。将ORCL数据库库的ORCLTBS1表空间间的数数据文文件ORCLTBS1_2.DBF设置为为自动动扩展展,每每次扩扩展5MB空间,,文件件最大大为100MB。ALTERDATABASEDATAFILE'D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\ORCLTBS1_2.DBF'AUTOEXTENDONNEXT5MMAXSIZE100M;修改表表空间间可用用性离线状状态的的表空空间是是不能能进行行数据据访问问的,所对应应的所所有数数据文文件也也都处处于脱脱机状状态。。一些表表空间间必须须是在在线状状态:SYSTEM表空间间存放在在线回回退信信息的的撤销销表空空间临时表表空间间语法ALTERTABLESPACEtablespace_nameONLINE|OFFLINE示例ALTERTABLESPACEORCLTBS1OFFLINE;ALTERTABLESPACEORCLTBS1ONLINE;修改表表空间间读写写性语法ALTERTABLESPACEtbs_nameREADONLY|READWRITE表空间间只有有满足足下列列要求求才可可以转转换为为只读读状态态:表空间间处于于联机机状态态;表空间间中不不能包包含任任何活活动的的回退退段;;如果表表空间间正在在进行行联机机数据据库备备份,,不能能将它它设置置为只只读状状态。。因为为联机机备份份结束束时,,Oracle更新表表空间间数据据文件件的头头部信信息。。示例ALTERTABLESPACEORCLTBS1READONLY;ALTERTABLESPACEORCLTBS1READWRITE设置默默认表表空间间在Oracle10g数据库库中,,默认认表空空间为为USERS表空间间,默默认临临时表表空间间为TEMP表空间间。设置数数据库库的默默认表表空间间ALTERDATABASEDEFAULTTABLESPACE设置数数据库库的默默认临临时表表空间间ALTERDATABASEDEFAULTTEMPORARYTABLESPACE示例ALTERDATABASEDEFAULTTABLESPACEORCLTBS1;ALTERDATABASEDEFAULTTEMPORARYTABLESPACETEMP;ALTERDATABASEDEFAULTTEMPORARYTABLESPACEtemp_group1;表空间重命命名语句ALTERTABLESPACE…RENAMETO当重命名一一个表空间间时数据库库会自动更更新数据字字典、控制制文件以及及数据文件件头部中对对该表空间间的引用。。在重命名名表空间时时,该表空空间ID号并没有修修改,如果果该表空间间是数据库库默认表空空间,那么么重命名后后仍然是数数据库的默默认表空间间。注意不能重命名名SYSTEM表空间和SYSAUX表空间不能重命名名处于脱机机状态或部部分数据文文件处于脱脱机状态的的表空间。。(3)表空间的的备份语法ALTERTABLESPACEtablespace_nameBEGIN|ENDBACKUP在数据库进进行热备份份(联机备备份)时,,需要分别别对表空间间进行备份份。基本步步骤为:使用ALTERTABLESPACE…BEGINBACKUP语句将表空空间设置为为备份模式式。在操作系统统中备份表表空间所对对应的数据据文件。使用ALTERTABLESPACE…ENDBACKUP语句结束表表空间的备备份模式。。示例:备份份ORCL数据库的ORCLTBS1表空间。ALTERTABLESPACEORCLTBS1BEGINBACKUP;复制ORCLTBS1表空间的数数据文件ORCLTBS1_1.DBF和ORCLTBS1_2.DBF到目标位置置。ALTERTABLESPACEORCLTBS1ENDBACKUP;(4)删除表空空间语法DROPTABLESPACEtablespace_name如果表空间间非空,应应带有子句句INCLUDINGCONTENTS若要删除操操作系统下下的数据文文件,应带带有子句ANDDATAFILES删除参照完完整性约束束,应带有有子句CASCADECONSTRAINTS删除ORCL数据库的ORCLTBS1表空间及其其所有内容容。DROPTABLESPACEORCLTBS1INCLUDINGCONTENTS;删除ORCL数据库的ORCLUNDO1表空间及其其所有内容容,同时删删除其所对对应的数据据文件。DROPTABLESPACEORCLUNDO1INCLUDINGCONTENTSANDDATAFILES;删除ORCL数据库的ORCLUNDO1表空间及其其所有内容容,同时删删除其所对对应的数据据文件,以以及其他表表空间中与与ORCLUNDO1表空间相关关的参照完完整性约束束。DROPTABLESPACEORCLUNDO1INCLUDINGCONTENTSANDDATAFILESCASCADECONSTRAINTS;(5)大文件表表空间的管管理概念大文件表空空间只包含含一个数据据文件,减减少数据库库中数据文文件的数量量,减少SGA中用于存放数数据文件信息息的内存需求求,同时减小小控制文件。。通过对大文件件表空间的操操作可以实现现对数据文件件的透明操作作,简化了对对数据文件的的管理。大文件表空间间只能采用本本地管理方式式,其段采用用自动管理方方式。如果在数据据库创建时时设置系统统默认的表表空间类型型为BIGFILE,则使用CREATETABLESPACE语句默认创创建的就是是大文件表表空间。如如果要创建建传统的小小文件表空空间,则需需要使用CREATESMALLFILETABLESPACE语句。创建大文件件表空间的的语句CREATEBIGFILETABLESPACE示例:创建建一个大文文件表空间间ORCLTBS5。CREATEBIGFILETABLESPACEORCLTBS5DATAFILE'D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\ORCLTBS5_1.DBF'SIZE20M;大文件表空空间的操作作将大文件表表空间ORCLTBS5的数据文件件D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\ORCLTBS5_1.DBF大小修改为为30MB。ALTERTABLESPACEORCLTBS5RESIZE30M;将大文件表表空间ORCLTBS5的数据文件件D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\ORCLTBS5_1.DBF修改为可以以自动扩展展。ALTERTABLESPACEORCLTBS5AUTOEXTENDONNEXT10MMAXSIZEUNLIMITED;(6)表空间信信息查询V$TABLESPACE:从控制文文件中获取取的表空间间名称和编编号信息。。DBA_TABLESPACES:数据库中中所有表空空间的信息息。DBA_TABLESPACE_GROUPS:表空间组组及其包含含的表空间间信息。DBA_SEGMENTS:所有表空空间中段的的信息。DBA_EXTENTS:所有表空空间中区的的信息。DBA_FREE_SPACE:所有表空空间中空闲闲区的信息息。V$DATAFILE:所有数据据文件信息息,包括所所属表空间间的名称和和编号。V$TEMPFILE:所有临时时文件信息息,包括所所属表空间间的名称和和编号。DBA_DATA_FILES:数据文件件及其所属属表空间信信息。DBA_TEMP_FILES:临时文件件及其所属属表空间信信息。DBA_USERS:所有用户户的默认表表空间和临临时表空间间信息。DBA_TS_QUOTAS:所有用户户的表空间间配额信息息。V$SORT_SEGMENT:数据库实实例的每个个排序段信信息。V$SORT_USER:用户使用用临时排序序段信息。。查询表空间间基本信息息SELECTTABLESPACE_NAME,EXTENT_MANAGEMENT,ALLOCATION_TYPE,CONTENTSFROMDBA_TABLESPACES;查询表空间间数据文件件信息SELECTFILE_NAME,BLOCKS,TABLESPACE_NAMEFROMDBA_DATA_FILES;查询表空间间空闲空间间大小SELECTTABLESPACE_NAME,SUM(BYTES)FREE_SPACESFROMDBA_FREE_SPACEGROUPBYTABLESPACE_NAME;统计表空间间空闲空间间信息SELECTTABLESPACE_NAME"TABLESPACE",FILE_ID,COUNT(*)"PIECES",MAX(blocks)"MAXIMUM",MIN(blocks)"MINIMUM",AVG(blocks)"AVERAGE",SUM(blocks)"TOTAL"FROMDBA_FREE_SPACEGROUPBYTABLESPACE_NAME,FILE_ID;(7)利用OEM管理表空间间创建表空间间编辑表空间间查看表空间间信息删除表空间间临时表空间间组的管理理6.3数据块(BLOCK)数据块的概概念数据块结构构数据块的管管理(1)数据块的的概念最小的I/O单元包括一个或或者多个OSBLOCK在数据库创创建时设置置,不可更更改分为标准块块和非标准准块DB_BLOCK_SIZE参数设置标标准块大小小(2)数据库块块结构HeaderFreespaceData块头部包括括标题、表表目录、行行目录三部部分。标题包含块块的一般属属性信息,,如块的物物理地址、、块所属段段的类型等等;表目录包含含数据块中中保存的表表的信息;;行目录包含含数据块中中的行地址址等信息。。存储区包括括行数据区区和空闲区区两部分。。行数据区是是已经使用用的空间,,保存数据据库的对象象数据;空闲区是尚尚未使用的的存储空间间,用于存存放新的行行或用来更更新已存在在的行。(3)数据块的的管理对块的管理理主要是对对块中可用用存储空间间的管理,,确定保留留多少空闲闲空间,避避免产生行行链接、行行迁移而影影响数据的的查询效率率。当向表格中中插入数据据时,如果果行的长度度大于块的的大小,行行的信息无无法存放在在一个块中中,就需要要使用多个个块存放行行信息,这这称为行链链接。当表格数据据被更新时时,如果更更新后的数数据长度大大于块长度度,Oracle会将整行的的数据从原原数据块迁迁移到新的的数据块中中,只在原原数据块中中留下一个个指针指向向新数据块块,这称为为行迁移。。对块的管理理分为自动动和手动两两种。如果建立表表空间时使使用本地管管理方式,,并且将段段的管理方方式设置为为AUTO,则采用自自动方式管管理块。否否则,DBA可以采用手手动管理方方式,通过过为段设置置PCTFREE和PCTUSED两个参数来来控制数据据块中空闲闲空间的使使用。PCTFREEPCTFREE参数数指指定定块块中中必必须须保保留留的的最最小小空空闲闲空空间间比比例例。。当当数数据据块块的的自自由由空空间间百百分分率率低低于于PCTFREE时,,此此数数据据块块被被标标志志为为USED,此此时时在在数数据据块块中中只只可可以以进进行行更更新新操操作作,,而而不不可可以以进进行行插插入入操操作作。。该该参参数数默默认认为为10。PCTUSEDPCTUSED参数数指指定定可可以以向向块块中中插插入入数数据据时时块块已已使使用用的的最最大大空空间间比比列列。。当当数数据据块块使使用用空空间间低低于于PCTUSED时,,此此块块标标志志为为FREE,可可以以对对数数据据块块中中数数据据进进行行插插入入操操作作;;反反之之,,如如果果使使用用空空间间高高于于PCTUSED,则则不不可可以以进进行行插插入入操操作作。。该该参参数数默默认认为为10。INITRANS可以以同同时时对对此此数数据据块块进进行行DML操作作的的事事务务的的个个数数。。MAXTRANS可以以同同时时对对此此数数据据块块进进行行DML操作作的的最最多多事事务务的的个个数数。。80%80%40%Inserts1234InsertsPCTFREE=20PCTUSED=40Insert(onfreelist)Inserts(offfreelist)6.4区区的的概概念念区的的管管理理(1)区区的的概概念念区是是由由一一系系列列连连续续的的数数据据块块构构成成的的逻逻辑辑存存储储单单元元,,是是存存储储空空间间分分配配与与回回收收的的最最小小单单位位。。当当创创建建一一个个数数据据库库对对象象时时,,Oracle为对对象象分分配配若若干干个个区区,,以以构构成成一一个个段段来来为为对对象象提提供供初初始始的的存存储储空空间间。。当当段段中中已已分分配配的的区区都都写写满满后后,,Oracle会为为段段分分配配一一个个新新区区,,以以容容纳纳更更多多的的数数据据。。(2)区的的管理理区的分分配在本地地管理理方式式的表表空间间中,,自动动进行行区的的分配配。可可以通通过使使用UNIFORM选项,,指定定所有有段的的初始始区和和后续续区具具有统统一大大小,,也可可以使使用AUTOALLOCATE选项指指定由由Oracle自动决决定后后续区区大小小。用用户不不能通通过其其他参参数来来干预预区的的分配配。在字典典管理理方式式的表表空间间中,,创建建表空空间时时可以以使用用DEFAULTSTORAGE子句设设置存存储参参数,,也可可以在在该表表空间间定义义对象象时通通过STORAGE子句设设置存存储参参数。。如果果在定定义对对象时时没有有设置置存储储参数数,则则继承承表空空间存存储参参数的的设置置。创建一一个本本地管管理方方式的的表空空间,,区分分配采采用自自动扩扩展方方式进进行。。CREATETABLESPACEORCLTBS6DATAFILE'D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\ORCLTBS6_1.DBF'SIZE20MEXTENTMANAGEMENTLOCALAUTOALLOCATE;创建一一个本本地管管理方方式的的表空空间,,区分分配采采用固固定大大小,,每个个区5MB。CREATETABLESPACEORCLTBS7DATAFILE'D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\ORCLTBS7_1.DBF'SIZE10MEXTENTMANAGEMENTLOCALUNIFORMSIZE5M;区的回回收通常分分配给给段的的区将将一直直保留留在段段中,,不论论区中中的数数据块块是否否被使使用。。只有有当段段所属属的对对象被被删除除时,,段中中所有有的区区才会会被回回收。。此外外,在在一些些特殊殊情况况下,,也能能够回回收未未使用用的区区。例例如,,如果果在创创建回回滚段段时指指定了了OPTIMAL关键字字,Oracle会定期期回收收回滚滚段中中未使使用的的区。。6.5段段概述述回滚段段7.5.1段概述述段的概概述段是由由一个个或多多个扩扩展区区组成成的逻逻辑存存储单单元。。数据库库模式式对象象在逻逻辑上上是以以段来来占据据表空空间的的大小小。段代表表特定定数据据类型型的数数据存存储结结构。。段的类类型::数据段段索引段段临时段段回滚段段数据段段数据段段用来来存储储表或或簇的的数据据,可可以细细分为为表数数据段段、索索引表表数据据段、、分区区表数数据段段及簇簇数据据段四四种。。索引段段用来存存放索索引信信息,,主要要包括括存储储ROWID和索引引键。。索引段段与其其相应应的表表段经经常会会被同同时访访问,,为了了减少少硬盘盘访问问的冲冲突,,索引引段与与表段段可以以放到到处于于不同同物理理位置置的表表空间间中。。临时段段当用户户进行行排序序查询询时,,如果果在指指定的的内存存无法法完成成排序序,Oracle将自动动从用用户默默认的的临时时表空空间中中指派派临时时段进进行排排序。。会话话结束束,数数据将将从临临时段段中自自动删删除。。回滚段回滚段段用于于保存存数据据库的的回滚滚信息息,包包含当当前未未提交交事务务所修修改的的数据据的原原始版版本。。一个事事务只只能使使用一一个回回滚段段存放放它的的回滚滚信息息,但但是一一个回回滚段段可以以存放放多个个事务务的回回滚信信息。。回滚滚段可可以动动态创创建和和撤销销。TableClusterTablepartitionIndex-organizedtableIndexpartitionUndosegmentTemporarysegmentIndex6.5.2回滚段段回滚段段的工作方方式回滚段段的作用用回滚段段的种种类回滚段段的管管理回滚段段的查查询(1)回滚滚段的的工作方方式回滚段段采用用循环环写的的方式式进行行写入入。当当回滚滚段中中最后后一个个区写写满时时,Oracle将覆盖盖写入入回滚滚段的的第一一个区区,如如果此此时第第一个个区保保存得得回滚滚条目目所对对应的的事务务依然然处于于活动动状态态(事事务未未提交交),,则此此时该该区不不能被被覆盖盖,Oracle将为回回滚段段分配配一个个新的的区。。一个回回滚段段至少少需要要两个个区。。一个个事

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论