欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > PPT文档下载  

    《逻辑存储结构》PPT课件.ppt

    • 资源ID:5611981       资源大小:313KB        全文页数:64页
    • 资源格式: PPT        下载积分:15金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要15金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    《逻辑存储结构》PPT课件.ppt

    逻辑存储结构,本章内容,Oracle的逻辑存储结构表空间数据块区段,本章要求,掌握Oracle数据库逻辑结构组成掌握表空间的作用及其管理掌握扩展区的结构及其管理掌握段的作用及其管理,逻辑存储结构概述,逻辑结构单元类型数据块:BLOCK 区:EXTENT段:SEGMENT表空间:TABLESPACE 数据库的存储层次数据库逻辑存储单元之间的关系,Database,Logical,Physical,Tablespace,Data file,OS block,Oracle block,Segment,Extent,数据库的存储层次,表空间,数据段,区间,数据块,(段片),数据库逻辑存储单元之间的关系,表空间,表空间概述表空间的管理,表空间概述,表空间概念是Oracle数据库的一个主要逻辑组织结构,Oracle数据库在逻辑上可以划分为一系列的逻辑空间,每一个逻辑空间就可以称为一个表空间。一个数据库由有一个或多个表空间构成,不同表空间用于存放不同应用的数据,表空间大小决定了数据库的大小。一个表空间对应一个或多个数据文件,数据文件大小决定了表空间的大小。一个数据文件只能从属于一个表空间。表空间是存储模式对象的容器,一个数据库对象只能存储在一个表空间中(分区表和分区索引除外),但可以存储在该表空间所对应的一个或多个数据文件中。若表空间只有一个数据文件,则该表空间中所有对象都保存在该文件中;若表空间对应多个数据文件,则表空间中的对象可以分布于不同的数据文件中。,数据库、表空间、数据文件、数据库对象之间的关系,表空间的作用,逻辑存放数据库中的数据。控制空间分配、指定用户可用的空间份额;通过将表空间联机或脱机来控制数据的可用执行部分备份和部分恢复功能;当实体增大或创建时,给其分配表空间,表空间的分配方式是以区的方式分配的。,表空间的分类,SYSTEM 表空间每个Oracle数据库必须具有一个默认系统表空间,即SYSTEM表空间,该表空间是在创建数据库时自动创建的。SYSTEM表空间主要用于存储下列信息数据库的数据字典。PL/SQL程序的源代码和解释代码,包括存储过程、函数、包、触发器等。数据库对象的定义,如表、视图、序列、同义词等。开发者不应把模式对象(如表等)存放在SYSTEM表空间,以免影响数据库的稳定性与执行效率。,表空间的分类,非SYSTEM 表空间索引表空间(INDEX):用来单独存放索引,使得它与其他类型的对象分离。撤消表空间(UNDOTBS)专门进行回退信息的自动管理 临时表空间(TEMP):保存SQL语句在执行过程中所产生的临时数据(主要是在排序时产生的临时数据)用户表空间(USERS)保存用户数据,表空间的管理方式,字典管理方式在字典管理方式下,表空间使用数据字典来管理存储空间的分配,当进行区的分配与回收时,Oracle将对数据字典中的相关基础表进行更新,同时会产生回退信息和重做信息 本地管理方式在本地管理方式中,区的分配与管理信息都存储在表空间的数据文件中,而与数据字典无关。表空间在每个数据文件中维护一个“位图”结构,用于记录表空间中的所有区的分配情况,因此区在分配与回收时,Oracle将对数据文件中的位图进行更新,不会产生回退信息或重做信息。在Oracle9i数据库中创建表空间时,表空间的默认管理方式为本地管理方式。,本地管理方式优势,由于在区分配与回收过程中不需要对数据字典进行访问,提高了表空间存储管理操作的速度和并发性。能够避免表空间存储管理操作中的递归现象,提高了存储空间管理操作性能。由于本地管理的临时表空间在使用过程中不会产生任何重做信息和撤销信息,因此既使查询操作中包含排序,对数据库来说也完全是只读操作,这样能够在保留可查询性同时,将整个数据库设置为只读状态。这种数据库可以作为备用数据库使用。简化了表空间存储管理,由Oracle自动完成存储管理操作。降低了用户对数据字典的依赖性。不存在磁盘碎片问题,因为必要的信息都存储在数据文件的位图中,而不是保存在数据字典中,在Oracle9i数据库中,系统表空间主要用于存储数据字典等Oracle自身对象和数据,将所有的用户对象和数据保存在其他表空间中,因此需要为数据库创建非系统表空间。使用多个表空间需遵循以下原则:将数据字典与用户数据分离 将回滚数据与用户数据分离 将表空间的数据文件分散保存到不同的硬盘上 能够将表空间设置为脱机状态或联机状态将表空间设置为只读状态 能够为某种特殊用途专门设置一个表空间 能够更加灵活的为用户设置表空间配额,表空间管理策略,表空间的管理(本地管理方式),表空间的创建表空间的修改表空间的备份表空间的删除表空间信息查询,创建表空间,在创建本地管理方式下的表空间时,首先应该确定表空间的名称、类型、对应的数据文件的名称和位置以及区的分配方式、段的管理方式。表空间名称不能超过30个字符,必须以字母开头,可以包含字母、数字以及一些特殊字符(如#、_、$)等;表空间的类型包括普通表空间、临时表空间和撤销表空间;表空间中区的分配方式包括自动扩展(AUTOALLOCATE)和定制(UNIFORM)两种;段的管理包括自动管理(AUTO)和手动管理(MANUAL)两种。,创建永久表空间,创建表空间使用CREATE TABLESPACE语句来实现,该语句包含以下几个子句:DATAFILE:设定表空间对应的一个或多个数据文件。EXTENT MANAGEMENT:指定表空间的管理方式,取值为LOCAL(默认)或DICTIONARY。AUTOALLOCATE(默认)或UNIFORM:设定区的分配方式。SEGMENT SPACE MANAGEMENT:设定段的管理方式,其取值为MANUAL(默认)或AUTO。,创建表空间示例,为ORCL数据库创建一个永久性的表空间,区自动扩展,段采用手动管理方式 CREATE TABLESPACE ORCLTBS1 DATAFILE D:ORACLEORADATAORCLORCLTBS1_1.DBF SIZE 50M;为ORCL数据库创建一个永久性的表空间,区定制分配,段采用手动管理方式 CREATE TABLESPACE ORCLTBS2 DATAFILE D:ORACLEORADATAORCLORCLTBS2_1.DBF SIZE 50M EXTENT MANAGEMENT LOCAL UNIFORM SIZE 512K,创建表空间示例,为ORCL数据库创建一个永久性的表空间,区自动扩展,段采用自动管理方式。CREATE TABLESPACE ORCLTBS3 DATAFILE D:ORACLEORADATAORCLORCLTBS3_1.DBF SIZE 50M SEGMENT SPACE MANAGEMENT AUTO;为ORCL数据库创建一个永久性的表空间,区定制分配,段采用自动管理方式。CREATE TABLESPACE ORCLTBS4 DATAFILE D:ORACLEORADATAORCLORCLTBS4_1.DBF SIZE 50M EXTENT MANAGEMENT LOCAL UNIFORM SIZE 512K SEGMENT SPACE MANAGEMENT AUTO;,创建临时表空间,使用CREATE TEMPORARY TABLESPACE 语句创建临时表空间,用TEMPFILE子句设置临时数据文件。需要注意的是临时表空间中区的分配方式只能是UNIFORM,而不能是AUTOALLOCATE,因为这样才能保证不会在临时段中产生过多的存储碎片。为ORCL数据库创建一个临时表空间。CREATE TEMPORARY TABLESPACE ORCLTEMP1 TEMPFILE D:ORACLEORADATAORCLORCLTEMP1_1.DBF SIZE 20M EXTENT MANAGEMENT LOCAL UNIFORM SIZE 16M;,创建撤销表空间,可以使用CREATE UNDO TABLESPACE语句创建撤销表空间,但是在该语句中只能指定DATAFILE和EXTENT MANAGEMENT LOCAL两个子句,而不能指定其他子句。为ORCL数据库创建一个撤销表空间。CREATE UNDO TABLESPACE ORCLUNDO1 DATAFILE D:ORACLEORADATAORCLORCLUNDO1_1.DBF SIZE 20M;如果要在数据库使用该撤销表空间,需要设置参数UNDO_MANAGEMENT=AUTO和参数UNDO_TABLESPACE=ORCLUNDO1。,修改表空间,扩展表空间 为表空间添加数据文件可以通过ALTER TABLESPACEADD DATAFILE语句为永久表空间添加数据文件,通过ALTER TABLESPACEADD TEMPFILE语句为临时表空间添加数据文件。为ORCL数据库的ORCLTBS1表空间添加一个大小为10M的新的数据文件。ALTER TABLESPACE ORCLTBS1 ADD DATAFILE D:ORACLEORADATAORCLORCLTBS1_2.DBF SIZE 10M;为ORCL数据库的ORCLTEMP1表空间添加一个大小为10M的临时数据文件。ALTER TABLESPACE ORCLTEMP1 ADD TEMPFILE D:ORACLEORADATAORCLORCLTEMP1_2.DBF SIZE 10M;,修改表空间,改变数据文件的大小可以通过改变表空间已有数据文件的大小,达到扩展表空间的目的。将ORCL数据库的ORCLTBS1表空间的数据文件ORCLTBS1_2.DBF大小增加到20M。ALTER DATABASE DATAFILE D:ORACLEORADATAORCLORCLTBS1_2.DBF RESIZE 20M;,修改表空间,改变数据文件的扩展方式如果在创建表空间或为表空间增加数据文件时没有指定AUTOEXTEND ON选项,则该文件的大小是固定的。如果为数据文件指定了AUTOEXTEND ON选项,当数据文件被填满时,数据文件会自动扩展,即表空间被扩展了。将ORCL数据库的ORCLTBS1表空间的数据文件ORCLTBS1_2.DBF设置为自动扩展,每次扩展5M空间,文件最大为100M。ALTER DATABASE DATAFILEC:ORACLEORADATAORCLORCLTBS1_2.DBFAUTOEXTEND ON NEXT 5M MAXSIZE 100M;,修改表空间,修改表空间可用性语法ALTER TABLESPACE tablespace_name ONLINE|OFFLINE离线状态的表空间是不能进行数据访问的一些表空间必须是在线状态:SYSTEM表空间存放在线回退信息的撤销表空间临时表空间,修改表空间读写性 语法ALTER TABLESPACE tbs_name READ ONLY|READ WRITE表空间只有满足下列要求才可以转换为只读状态:表空间处于联机状态;表空间中不能包含任何活动的回退段;如果表空间正在进行联机数据库备份,则不能将它设置为只读状态。因为联机备份结束时,Oracle更新表空间数据文件的头部信息。,修改表空间,设置默认表空间,Oracle数据库的默认表空间为System,默认临时表空间为Temp。可根据需要设置数据库的默认表空间将ORCLTBS1表空间设置为ORCL数据库默认表空间:Alter database default tablespace ORCLTBS1 将TEMP表空间设置为ORCL数据库的默认临时表空间:Alter database default temporary tablespace TEMP,表空间的备份,语法ALTER TABLESPACE tablespace_name BEGIN|END BACKUP在数据库进行热备份(联机备份)时,需要分别对表空间进行备份。对表空间进行备份基本步骤为:使用ALTER TABLESPACEBEGIN BACKUP语句将表空间设置为备份模式。在操作系统中备份表空间所对应的数据文件。使用ALTER TABLESPACEEND BACKUP语句结束表空间的备份模式。,表空间删除,语法DROP TABLESPACE tablespace_name如果表空间非空,应带有子句:INCLUDING CONTENTS若要删除操作系统下的数据文件,应带有子句:AND DATAFILES示例DROP TABLESPACE userdata INCLUDING CONTENTS AND DATAFILES;,查询表空间信息,表空间信息:DBA_TABLESPACESV$TABLESPACE数据文件信息:DBA_DATA_FILESV$DATAFILE临时文件信息:DBA_TEMP_FILESV$TEMPFILE,查询表空间的名称,区管理方式,存储分配方式,类型等基本信息SELECT TABLESPACE_NAME,EXTENT_MANAGEMENT,ALLOCATON_TYPE,CONTENTS FROM DBA_TABLESPACES;查询表空间的数据文件信息SELECT FILE_NAME,BLOCKS,TABLESPACE_NAME FROM DBA_DATA_FILES;查询数据文件的基本信息SELECT NAME,FILE#,RFILE#,STATUS,BYTES FROM V$DATAFILE;,查询表空间信息,询数据文件的自动增长方式SELECT TABLESPACE_NAME,FILE_NAME,AUTOEXTENSIBLE FROM DBA_DATA_FILES;查询临时数据文件的信息SELECT TABLESPACE_NAME,FILE_NAME,AUTOEXTENSIBLE FROM DBA_TEMP_FILES;,查询表空间信息,利用OEM管理表空间,创建表空间改变表空间合并表空间中的存储碎片 为表空间添加数据文件更改已有数据文件,利用OEM管理表空间,数据块(BLOCK),数据块概述数据块结构数据块的管理,数据块概述,最小的 I/O单元包括一个或者多个OS BLOCK在数据库创建时设置,不可更改 DB_BLOCK_SIZE 参数是缺省值Oracle9i 中分为标准块和非标准块,数据库块结构,Header,Free space,Data,包含块头部、表目录行目录等,Header:包括块头部,表目录,行目录,事务条目等块头部:块类型及地址信息:物理地址,段类型表目录:数据块所存储的表的相关信息行目录:保存表中数据(记录)的相关信息Free space:尚未使用的存储空间Data:已经使用的空间,保存数据库对象的数据空闲空间和行空间共同构成存储区,数据库块结构,数据块的存储空间管理,避免发生行链接和行迁移 当向表格中插入数据时,如果行的长度大于块的大小,行的信息无法存放在一个块中,需要使用多个块存放行信息,称为行链接。当表格数据被更新时,如果更新后的数据长度大于块长度,Oracle将整行的数据从原数据块迁移到新的数据块中,只在原数据块中留下一个指针指向新数据块,称为行迁移。块管理分为自动和手动两种(表空间的管理方式),PCTFREEPCTFREE参数指定块中必须保留的最小空闲空间比例。当数据块的自由空间百分率低于PCTFREE时,此数据块被标志为USED,此时在数据块中只可以进行更新操作,而不可以进行插入操作。该参数默认为10。PCTUSED PCTUSED参数指定可以向块中插入数据时块已使用的最大空间比列。当数据块使用空间低于PCTUSED时,此块标志为FREE,可以对数据块中数据进行插入操作;反之,如果使用空间高于PCTUSED,则不可以进行插入操作。该参数默认为10。INITRANS可以同时对此数据块进行DML操作的事务的个数。MAXTRANS可以同时对此数据块进行DML操作的最多事务的个数。,手动管理块存储参数,BLOCK 空间使用举例,80%,80%,40%,Inserts,1,2,3,4,PCTFREE=20PCTUSED=40,使用块空间实用参数,1.为行的增长额外留出空间:p c t f r e e它告诉 O r a c l e在最初用行数据填充块之前,在块中留出多少可用空间。例如,如果一个表的p c t f r e e指定为1 0%,当块中剩下1 0%的可用空间时,O r a c l e停止给该块增加新行。剩下的空间在用户设置 N U L L列为非N U L L值时,供已有的行使用。怎样设置p c t f r e e:如果添加到一个表的行需要经常更新,每次更新都会给行增加许多字节,则设置 p c t f r e e为一个较高的值。反之,如果块中的行不常更新,或者更新不影响每个行的尺寸,则应该设置数据库对象上的 p c t f r e e值为较低的值。设置 p c t f r e e较高能阻止性能“杀手”,如行迁移(因为原来的块再也没有空间存储而将整个行移到另一个块)。较高的p c t f r e e值大约在2 0到2 5之间,而较低的pctfree值大约为4或5,可用于静态或只读表。p c t f r e e子句是在数据库对象级给出,使用块空间实用参数,2.对块中可用空间进行管理:p c t u s e dpctused选项指定一个以百分数表示的阈值,Oracle根据它判断是否能够给块增加新行。如:在表中加入新行的过程中,Oracle用插入的行填充相应的块,直到到达pctfree所设置的边界为止。以后,由于从表中删除了数据,表在块级的空间利用率就下降了。当数据块中所使用的空间下降到低于 pctused所设置的阈值时,Oracl e将这个块添加到为表维护的可用列表(freelist)中。可用列表是当前可接收新数据行的数据块的列表。为了防止块在只可以添加一两行时就进入可用列表,应该相对低地设置p c t u s e d选项。提示 除非需要严格地管理可用空间,否则不要设置pctused的值超过40或50。,设置p c t f r e e和p c t u s e d具体值,这两个选项的值是在建立数据库对象时配合设置的,在确定p c t f r e e和p c t u s e d的值时,不要给它们分配合计超过 1 0 0的值。下面的列表给出了 p c t f r e e和p c t u s e d的一些可能认为是合适的值:?pctfree 5,pctused 40 适合于静态或只读表,如那些定期装载用于数据仓库和只进行查询的应用程序。?pctfree 10,pctused 40 特别适合于在插入行之后,更新活动不会增加已有行的长度的综合性O L T P系统。?pctfree 20,pctused 40 适合于插入行之后,更新活动会增加已有行的长度的 O L T P系统(2 0是p c t f r e e的一个较高的值)。,例子,4.设置p c t f r e e和p c t u s e d:SQL CREATE TABLE FAMILY 2(NAME VARCHAR2(10)primary key,3 RELATIONSHIP VARCHAR2(10)4 storage(initial 100K next 100K5 pctincrease 0 minextents 1 maxextents 200)6 PCTFREE 20 PCTUSED 40;,区(EXTENT),区的概念由一组连续的数据块构成,是存储分配的最小单位。区的管理区的分配在本地管理方式的表空间中,系统可以根据需要,自动进行区的分配。可以通过使用UNIFORM选项指定所有段的初始区和后续区具有统一大小,也可以使用AUTOALLOCATE选项指定由Oracle自动决定后续区大小。用户不能通过其他参数来干预区的分配。,AUTOALLOCATE(默认设置)EXTENT MANAGEMENT LOCAL AUTOALLOCAT 由Oracle负责对区的分配进行自动管理,表空间中最小 的区为64kBUNIFORMEXTENT MANAGEMENT LOCAL UNIFORM SIZE n表空间中所有的区必须具有统一的大小若没有指定SIZE参数的值,则为默认值1MB,区(EXTENT),段,段概述 回退段,段概述,段的概述段是由一个或多个扩展区组成的逻辑存储单元。数据库模式对象在逻辑上是以段来占据表空间的大小。段代表特定数据类型的数据存储结构。段的类型:数据段数据段用来存储表或簇的数据,可以细分为表数据段、索引表数据段、分区表数据段及簇数据段四种。,段的类型:,索引段用来存放索引信息,主要包括存储ROWID和索引键。索引段与其相应的表段经常会被同时访问,为了减少硬盘访问的冲突,索引段与表段可以放到处于不同物理位置的表空间中。临时段当用户进行排序查询时,如果在指定的内存无法完成排序,Oracle将自动从用户默认的临时表空间中指派临时段进行排序。会话结束,数据将从临时段中自动删除。回退段用于存放数据修改之前的值(包括数据修改之前的位置和值),利用回滚段恢复被回滚事务对数据库所做的修改,或者为事务提供读一致性保证。一个事务只能使用一个回滚段存放它的回滚信息,但一个回滚段可以存放多个事务的回滚信息。,Table,Cluster,Table partition,Index-organizedtable,Index partition,Undosegment,Temporarysegment,Index,回退段,回退段的作用 回退段的种类回退段的管理,回滚段的工作方式,回滚段采用循环写的方式进行写入。当回滚段中最后一个区写满时,Oracle将覆盖写入回滚段的第一个区,如果此时第一个区保存得回滚条目所对应的事务依然处于活动状态(事务未提交),则此时该区不能被覆盖,Oracle将为回滚段分配一个新的区。一个回滚段至少需要两个区。一个事务可以占用回滚段中的多个区,同一个区也能够存放多个事务的数据,Update transaction,Old image,New image,Undo segment,Table,回滚段的作用,Transaction rollback(事务回滚),Transaction recovery(事务恢复),Undo segment,Read consistency(读一致性),回退段的类型,系统回退段创建数据库时Oracle系统自动在SYSTEM表空间中创建一个“SYSTEM”系统回退段。该回退段只用于系统事务的回退处理,保存系统表空间中对象的前影像。非系统回退段用户可以创建非SYSTEM回退段,用于用户事务的回退处理,保存非系统表空间中对象的前影像。非系统回退段又分为私有回退段和公有回退段,其中私有回退段只能被一个实例使用,其数目和名称由ROLLBACK_SEGMENTS参数决定;公有回退段可以被多个实例共享使用,其数目由TRANSACTIONS和TRANSACTION_PER_ROLLBACK_SEGMENT决定。,回滚段管理,手工撤销管理UNDO_MANAGEMENT=MANUAL自动撤销管理UNDO_MANAGEMENT=AUTO实例创建一个撤销表空间。建议在Oracle9i中使用自动撤销管理方式,创建回退段(手动撤销管),使用CREATE ROLLBACK SEGMENT语句为表空间创建回退段。创建回退段时,表空间必须处于联机状态。为SYSTEM表空间创建一个回退段。CREATE ROLLBACK SEGMENT REDOSEG1 TABLESPACE SYSTEM;为UNDOTBS1表空间创建一个回退段,并设置相应的存储参数。CREATE ROLLBACK SEGMENT REDOSEG2 TABLESPACE UNDOTBS1STORAGE(INITIAL 100K NEXT 100K OPTIMAL 4MMINEXTENTS 20 MAXEXTENTS 100);,修改回退段,修改回退段的可用性ALTERROLLBACK SEGMENTONLINE|OFFLINE 修改回退段的存储参数可以修改回退段的OPTIMAL和MAXEXTENTS两个存储参数。缩减回退段可以使用ALTER ROLLBACK SEGMENTSHRINK语句手动缩减回退段。,修改回退段,为事务指定回退段 当执行一个DML或DDL语句时,Oracle将自动为事务指定一个可用的回退段。DBA可以显式的为某个事务指定所用的回退段。SET TRANSACTION USE ROLLBACK SEGMENT USERRB01删除回退段如果某个回退段中碎片太多或要将回退段移到其他表空间,就需要先删除该回退段,然后重建回退段。如果要删除一个回退段,必须先将该回退段切换到联机状态,然后使用DROP ROLLBACK SEGMENT语句来删除回退段。,回退段的查询,数据字典DBA_ROLLBACK_SEGSDBA_SEGMENTS 动态性能试图V$ROLLNAMEV$ROLLSTATV$UNDOSTATV$SESSIONV$TRANSACTION,小结,数据库的逻辑结构表空间和数据数据文件创建、修改表空间数据块和扩展区的管理段的分类和管理,

    注意事项

    本文(《逻辑存储结构》PPT课件.ppt)为本站会员(小飞机)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开