Oracleg数据库基础教程XXXX 第章逻辑存储结构_第1页
Oracleg数据库基础教程XXXX 第章逻辑存储结构_第2页
Oracleg数据库基础教程XXXX 第章逻辑存储结构_第3页
Oracleg数据库基础教程XXXX 第章逻辑存储结构_第4页
Oracleg数据库基础教程XXXX 第章逻辑存储结构_第5页
已阅读5页,还剩74页未读 继续免费阅读

下载本文档

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

文档简介

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

逻辑结构单元类型数据块:BLOCK区:EXTENT段:SEGMENT表空间:TABLESPACE数据库的存储层次关系DatabaseLogicalPhysicalTablespaceDatafileOSblockOracle

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

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

温馨提示

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

评论

0/150

提交评论