首页 9-Oracle数据库逻辑结构

9-Oracle数据库逻辑结构

举报
开通vip

9-Oracle数据库逻辑结构第九讲数据库逻辑结构本章学习目标Oracle对逻辑存储结构和物理存储结构的管理是分别进行的,Oracle的逻辑存储结构能够适用于不同的操作系统平台和硬件平台。本章介绍Oracle数据库的逻辑结构,即表空间、扩展区、段和数据块的概念及管理方法。学习内容9.1数据库逻辑结构概述9.2数据块9.3扩展区9.4段9.5表空间及其管理9.1数据库逻辑结构概述9.1.1逻辑结构9.1.2逻辑结构与物理结构的对应关系表空间数据块扩展区段数据库数据文件数据存储单位数据块最小的逻辑存储单位,由多个操作系统块组成扩展区一组连续的数据块...

9-Oracle数据库逻辑结构
第九讲数据库逻辑结构本章学习目标Oracle对逻辑存储结构和物理存储结构的管理是分别进行的,Oracle的逻辑存储结构能够适用于不同的操作系统平台和硬件平台。本章介绍Oracle数据库的逻辑结构,即 关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf 空间、扩展区、段和数据块的概念及管理方法。学习内容9.1数据库逻辑结构概述9.2数据块9.3扩展区9.4段9.5表空间及其管理9.1数据库逻辑结构概述9.1.1逻辑结构9.1.2逻辑结构与物理结构的对应关系表空间数据块扩展区段数据库数据文件数据存储单位数据块最小的逻辑存储单位,由多个操作系统块组成扩展区一组连续的数据块段有共同结构的一个或几个扩展区,数据对象(Table,Index,等)以段的形式存在表空间逻辑上用来保存各种段,物理上由多个操作系统文件组成。文件属于某个表空间的物理文件逻辑结构与物理结构的对应关系表空间段扩展区数据块数据文件操作系统块数据库从物理上看,一个数据库是由一到多个数据文件(datafile)组成;一个数据文件是由一到多个操作系统块(osblock)组成。从逻辑和物理存储结构的联系来看,一个表空间是由多个数据文件组成,一个数据文件是由多个扩展区组成,一个数据库块是由多个操作系统块组成。一个数据库块是Oracle最小的逻辑存储单位,一个操作系统块是进行I/O的最小单位。9.2数据块9.2.1数据块的概念与结构9.2.2块空间的使用及存储参数9.2.3行链接和行迁移行数据空闲空间块管理数据9.2.1数据块的概念与结构数据块(BLOCK)块头包含一般的块信息,如块的地址,所属段的类型等表目录包含数据区每行数据的地址行目录包含块中存储数据所属表的信息块管理数据的结构数据块概念小结数据块为Oracle分配、读或写的最小的存储单元,又称逻辑块或ORACLE块。一个数据块对应一个或多个从现有数据文件中分配的操作系统块,每个Oracle数据库的数据块大小由初始化参数db_block_size在创建数据库时指定。数据块的大小应该是操作系统块的整数倍,数据块大小的最大值取决于操作系统9.2.2块空间的使用及存储参数行数据PCTFREE=20%PCTUSED=40%空闲空间块管理数据空闲空间块空间的使用InsertsInsertsInsertsInserts1234PCTFREE=20PCTUSED=4080%80%40%PCTFREEPCTFREE参数给出保留空间的最小百分比,用于行的UPDATE操作。在遭遇到PCTFREE后,这块被填满且不能进行INSERT操作。PCTFREE的影响PCTFREE低高1、可把块填得较满2、易引起行迁移1、剩下多的空间给以后修改用2、需更多的块存数据3、易引起行链和重组数据的代价PCTUSED当块中数据加上头和目录数据的百分比小于PCTUSED时,可以插入数据。数据块(Block)的存储参数默认值:Pctfree10Pctfree,Pctused互相消涨,其和不超过100Pctused40Inittrans1或2单一块中最初活动的事务数Maxtrans255单一块中最大事务数常见的几种分配 方案 气瓶 现场处置方案 .pdf气瓶 现场处置方案 .doc见习基地管理方案.doc关于群访事件的化解方案建筑工地扬尘治理专项方案下载 :大量Update操作Pcrfree20Pctused40大量Insert,Select,少量UpdatePctfree5Pctused60体积大的表,Select较多Pctfree5Pctused90仅仅用于查询的Pctfree09.2.3行链接和行迁移行链接发生于插入时行太长,数据块放不下,该行数据存放在该段的多个数据块中行迁移发生于修改时修改后行变长,空闲空间不够,该行数据被整个迁移到另一个数据块中。行迁移BeforeupdateAfterupdate9.3扩展区9.3.1扩展区的概念9.3.2扩展区的分配和释放9.3.3扩展区的参数设置9.3.1扩展区的概念一个区是一组连续的Oracle块。Oracle按区向段分配空间,当段创建后,它至少由一个区组成。区是Oracle存储分配的最小单位。一个区不能跨越数据文件,一个区只能惟一地属于一个数据文件。9.3.2扩展区的分配和释放下述情况下向段分配扩展区段创建时扩展时下述情况下从段释放扩展区+删除对象时(Drop)+清空数据时(Truncated)+自动改变大小时(仅对回滚段)9.3.3扩展区的参数设置Extent有关的参数initial最初分配的空间next下一步分配的空间数maxextents段生成时最大分配extent数Minextents段生成时最小分配extent数pctincrease增长率optimal尽量设小(缺省为空,仅用回滚段)表空间、表、索引、分区、快照、快照日志的存储参数默认值最小值Initial5个数据块2个数据块Next5个数据块1个数据块Minextents11Maxextents根据数据块大小而定1Pctincrease500推荐使用:大小一致的,增长率较低存储分配initial=next表空间的pctincrease1其它数据对象pctincrease0对象级的存储参数设置值覆盖表空间级的设置未在对象级设置存储参数,由表空间级的设置决定未在表空间级设置存储参数,由Oracle数据库级参数设置决定存储参数改变后,新的选项只针对未分配的extents有效。存储参数的设定规则9.4段9.4.1段的概念9.4.2段的分类9.4.3查询段信息9.4.1段的概念段是为表空间内特定逻辑存储结构分配的空间。例如分配给表的所有存储空间是一个段。段无法跨越表空间,但是段可以跨越属于一个表空间的多个数据文件。每个段由一个或多个区组成。DBA_SEGMENTS中保存段的有关信息9.4.2段的分类数据段一个数据段可存放一个未经分区的表或聚簇,也可以存放表的一个分区。索引段保存索引中的索引条目临时段存放排序操作中生成的临时表的数据回滚段存放事务所修改数据的旧值,当进行回退操作或实例失败时使用。9.4.3查询段信息DBA_SEGMENTS一般信息OWNERSEGMENT_NAMESEGMENT_TYPETABLESPACE_NAME大小EXTENTSBLOCKS存储参数INITIAL_EXTENTNEXT_EXTENTMIN_EXTENTSMAX_EXTENTSPCT_INCREASE获得已用子段的信息DBA_EXTENTS标识信息OWNERSEGMENT_NAMEEXTENT_ID位置和大小TABLESPACE_NAMEFILE_IDBLOCK_ID(该区的第一个块的块号)BLOCKS检查空闲子段的信息DBA_FREE_SPACE位置和大小TABLESPACE_NAMEFILE_IDBLOCK_ID(该文件自由段的第一个块号)BLOCKS(该自由段占用的块数)9.5表空间及其管理9.5.1表空间的概念9.5.2表空间分类9.5.3表空间的存储管理方式9.5.4表空间管理9.5.1表空间的概念从逻辑上看,数据库中的数据存储在表空间中,而从物理上看,则是存储在与表空间对应的数据文件中。在一个表空间中可以有多个同它有关联的数据文件,但一个数据文件只能属于一个表空间,表空间的大小是它所对应的数据文件大小的总和。9.5.2表空间分类系统表空间在创建数据库时,Oracle将会创建SYSTEM表空间。所有数据词典对象都存储在这一表空间中。一般不放用户的数据,但是用户脚本,如过程,函数,包等却是保存在数据字典中的。非系统表空间(1)临时表空间:存放用户的排序等临时数据,临时段占有的空间会在下次系统启动的时候全部被释放(2)回滚段表空间:临时存放修改前的数据(3)用户表空间:一般是由用户建立,来存取用户数据(包括索引)的表空间。多个表空间的优势将数据字典与用户数据分离开来,避免由于字典对象和用户对象保存在同一个数据文件中而产生的I/O冲突。将回退数据与用户数据分离开来,避免由于硬盘损坏而导致永久性的数据丢失。将表空间的数据文件分散保存到不同的硬盘上,平均分布物理I/O操作。能够将某个表空间设置为脱机状态或联机状态,以便对数据库的一部分进行备份和恢复。能够将某个表空间设置为只读状态,从而将数据库的一部分设置为只读状态。能够为某种特殊用途专门设置一个表空间,比如临时表空间等,以优化表空间的使用效率。能够更加灵活地为用户设置表空间限额9.5.3表空间的存储管理方式字典管理方式表空间的扩展区管理信息保存在system表空间的数据字典中,称为“字典管理方式”。本地管理方式在本地管理的表空间中,每个数据文件内都维护一个位图,以了解该数据文件内块的空闲或使用状态,被称为“本地管理方式”。9.5.4表空间管理9.5.4.1创建表空间9.5.4.2修改表空间9.5.4.3删除表空间9.5.4.4表空间及数据文件信息查询9.5.4.5注意问 快递公司问题件快递公司问题件货款处理关于圆的周长面积重点题型关于解方程组的题及答案关于南海问题 9.5.4.1创建表空间创建字典管理表空间创建本地管理表空间创建临时表空间创建字典管理表空间CREATETABLESPACEtestspaceDATAFILE‘f:\orcl\testspace1.dbf'SIZE100M,‘f:\orcl\testspace2.dbf'SIZE100MDEFAULTSTORAGE(INITIAL128KNEXT128KMINEXTENTS1MAXEXTENTSUNLIMITEDPCTINCREASE0)EXTENTMANAGEMENTDICTIONARY;CREATETABLESPACEuser_dataDATAFILE‘f:\orcl\user_data_01.dbf'SIZE500MEXTENTMANAGEMENTLOCALUNIFORMSIZE10M;创建本地管理表空间不能指定createtablespace的defaultstorage和minimumextent子句。所有段的初始区和后续区可以具有统一的大小(UNIFORM),也可以由Oracle来自动决定后续区的大小和增加方式(AUTOALLOCATE)。创建临时表空间如果没有为数据库用户指定一个专门的临时表空间,这些临时数据在默认情况下将存储在system表空间中,这样做的结果是会占用system表空间的存储空间,并且频繁地分配和释放临时段会在system表空间中产生大量的存储碎片,从而影响整个数据库的性能。为了避免在system表空间内存储临时数据,DBA应当在数据库中创建一个专门用来存储临时数据的临时表空间,创建字典管理的临时表空间createtablespacetempdatafile‘f:\orcl\temp01.dbf’size300Mdefaultstorage(initial2Mnext2Mpctincrease0maxextentsunlimited)extentmanagementdictionarytemporary;创建本地管理的临时表空间createtemporarytablespacetemptempfile‘f:\orcl\temp_01.dbf’size500Mextentmanagementlocaluniformsize10M;9.5.4.2修改表空间改变表空间存储设置改变表空间状态改变表空间尺寸重定位数据文件改变表空间存储设置使用命令altertablespace命令来改变表空间的缺省存储定义AlterTABLESPACEtablespace{minimumextentinteger[k|m]|defaultstorage_clause}例1:将表空间中区的最小尺寸定义为2Maltertablespaceapp_dataminimumextent2m;例2:将表空间的缺省存储参数定义为第一个区大小2M,第二个区大小2M,每个段最多分配999个区altertablespaceapp_datadefaultstorage(initial2mnext2mmaxextents999);改变表空间状态使表空间脱机或联机通过将某一表空间置于脱机或联机状态,可以控制它的可用性。当表空间处于联机状态时,用户可以访问其中的数据。当某一表空间处于脱机状态时,用户无法访问它的数据,但允许正常访问数据库的其余处于联机的表空间。某些表空间如system和具有活动回退段的表空间必须联机。altertablespaceuser_dataonline;altertablespaceapp_dataoffline;使表空间只读如果不想让用户修改表空间中的任何数据,可以将表空间设置为只读。system表空间不能设置为只读。altertablespaceuserread_only;altertablespaceapp_datareadwrite;改变表空间的尺寸什么时候需要改变表空间的尺寸?当数据占满表空间时,不能向表空间再添加新的数据如何知道表空间已经满了呢?例如我们正对课程表course进行插入数据的操作,此时出现了“ora-0165:unabletoextendtablecourseintablespaceapp_data”,这时我们就知道表空间已经满了。扩大表空间方案一添加数据文件altertablespacestudent_dataadddatafile‘f:\orcl\student2.dbf‘size1000M;扩大表空间方案二指定数据文件自动扩展当激活了数据文件的自动扩展选项之后,如果数据库数据占满了数据文件所有空间,系统会自动扩展该数据文件。例:以下命令创建了表空间student_data,当数据占满了student3.dbf文件之后,系统会自动扩展该数据文件,并且该数据文件每次扩展的尺寸为50MB,并且其最大尺寸没有限制。createtablespacestudent_datadatafile‘f:\orcl\student3.dbf’size200Mautoextendonnext50Mmaxsizeunlimiteddefaultstorage(initial100mnext100mminextents1maxextentsunlimitedpctincrease0);扩大表空间方案三手动调整数据文件大小使用alterdatabase命令能够手动调整数据文件的大小,其语法如下:alterdatabase[databasename]datafile"filename"..resizeinteger[K|M]例:alterdatabasedatafile‘f:\orcl\student2.dbf’resize200M;重定位数据文件使用ALTERTABLESPACE(1)使表空间脱机ALTERTABLESPACEapp_dataOFFLINE;(2)在操作系统下移动数据文件(3)使用命令,修改控制文件中的信息ALTERTABLESPACEapp_dataRENAMEDATAFILE‘f:\orcl\app_data_01.dbf'TO‘d:\orcl\app_data_01.dbf';(4)使表空间联机ALTERTABLESPACEapp_dataONLINE;使用ALTERDATABASE(1)关闭数据库(2)在操作系统下移动数据文件(3)装载数据(STARTUPMOUNT)(4)使用命令,修改控制文件中的信息ALTERDATABASERENAMEFILE‘f:\orcl\system_01.dbf'TO‘d:\orcl\system_01.dbf';(5)打开数据库(ALTERDATABASEOPEN)9.5.4.3删除表空间当表空间损坏无法恢复时,或者当表空间不再需要时,可以使用droptablespace命令将表空间从数据库中删除。表空间中没有任何对象时DROPTABLESPACEtablespace_name;表空间中已经创建了对象时DROPTABLESPACEtablespace_nameINCLUDINGCONTENTS;9.5.4.4表空间及数据文件信息查询表空间信息DBA_TABLESPACESV$TABLESPACE数据文件信息DBA_DATA_FILESV$DATAFILE临时文件信息DBA_TEMP_FILESV$TEMPFILE数据字典视图表空间DBA_TABLESPACES段DBA_SEGMENTS数据文件DBA_DATA_FILES空闲空间DBA_FREE_SPACE已用的空间DBA_EXTENTS当创建一个有一个或多个文件的表空间时,向dba_tablespaces添加一行对数据库中的每个文件,都向dba_data_files添加一行在这个阶段,每个数据文件的空间(除了文件头)在dba_free_space中均显示为一个空闲区在创建一个段后,dba_segments内将看到一行分配给该段的区的空间可从dba_extents查看,同时调整dba_free_space以显示为段创建的区所在文件内的空闲空间变低了文件内的所有空间(除了文件头)必须在dba_free_space或dba_extents中说明。数据文件查询查询数据文件列表,包括数据文件的状态,存储容量和名称SQL>selectstatus,bytes,namefromv$datafile查看数据文件所属的表空间、字节数、是否可扩展、数据文件名称SQL>selecttablespace_name,bytes,autoextensible,file_namefromdba_data_files;表空间查询显示表空间名称SQL>select*fromv$tablespace;查询表空间默认存储参数SQL>selecttablespace_name,block_size,initial_extent,next_extentfromdba_tablespaces;获得分配给用户SCOTT的各个段的区和块的数目SQL>selectsegment_name,extents,blocksfromdba_segmentswhereowner='SCOTT';查询分配给用户HR的区所属的段类型、段所属的表空间名称、段所属的文件号、区的大小SQL>selectsegment_type,tablespace_name,file_id,bytesfromdba_extentswhereowner='HR';存储结构查询查询SCOTT用户的EMP段所占用区的区号、区所属的文件号、该区第一个块的块号、该区共占用的块数SQL>selectextent_id,file_id,block_id,blocksfromdba_extentswhereowner='SCOTT'andsegment_name='EMP';查询emp表用了多少空间SQL>selectcount(*)extents,sum(bytes)bytes_used,sum(blocks)block_usedfromdba_extentswhereowner='SCOTT'andsegment_name='EMP'andsegment_type='TABLE';查询一个表空间中分配给所有的对象的空间SQL>selectowner,segment_name,segment_type,count(*)extents,sum(bytes)bytes_used,sum(blocks)blocks_usedfromdba_extentswheretablespace_name='SYSTEM‘groupbyowner,segment_name,segment_typeorderbyowner,segment_name,segment_type;返回每一个表空间中未使用空间的数量和每个表空间中最大自由段的容量sql>selecttablespace_name,count(*),max(blocks),sum(blocks)fromdba_free_spacegroupbytablespace_name;9.5.4.5注意问题SYSTEM表空间永远不能脱机。当重命名数据文件、转移非系统表空间的数据文件、作物理数据库备份等情况下,就需要表空间的脱机和联机操作;有时出现磁盘物理坏块,则恢复的方法之一就是将包含坏块的数据文件的表空间脱机,然后执行介质恢复。当创建一个表空间时,必须至少使之包含一个以上的数据文件;一旦某个数据文件已经存在于某个表空间中,则不能删除该数据文件,只能通过删除整个表空间删除该文件。小结逻辑存储结构主要用于描述Oracle内部的组织和管理数据的方式,能够适用于不同的操作系统平台和硬件平台,它们是学习Oracle所必须掌握的知识。通过本课的学习,同学们要清晰地理解各种存储概念,即数据库、表空间、段、扩展区和数据块之间的关系,掌握存储空间的管理方法。综合练习查看表空间创建表空间更改表空间状态查看表空间和数据文件的信息参考资料下课了。。。追求休息一会儿。。。演讲完毕,谢谢观看!
本文档为【9-Oracle数据库逻辑结构】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
个人认证用户
言言无悔一生
暂无简介~
格式:ppt
大小:415KB
软件:PowerPoint
页数:76
分类:
上传时间:2022-01-21
浏览量:0