Oracle逻辑存储结构.ppt_第1页
Oracle逻辑存储结构.ppt_第2页
Oracle逻辑存储结构.ppt_第3页
Oracle逻辑存储结构.ppt_第4页
Oracle逻辑存储结构.ppt_第5页
已阅读5页,还剩86页未读 继续免费阅读

下载本文档

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

文档简介

第二篇,体系结构篇,5.1Oracle数据库系统结构,Oracle数据库的存储结构分为物理存储结构和逻辑存储结构物理存储结构主要用于描述Oracle数据库外部数据的存储,即在操作系统中如何组织和管理数据逻辑存储结构主要描述Oracle数据库内部数据的组织和管理方式。逻辑存储结构从用户角度描述数据的组织形式物理存储结构是逻辑存储结构在物理上的、可见的、可操作的、具体的体现形式,物理结构,Oracle数据库物理结构,逻辑结构,Oracle数据库逻辑结构,数据库,数据表,索引,存储过程,数据表,索引,存储过程,Oracle数据库系统结构由数据库实例和物理存储结构组成。,7-12周周二7-8节上机信息楼三楼大软作业课本P93第1题(1)(3)P94第2题(1)(2)(3),复习Oracle数据库系统结构,Oracle数据库的存储结构分为物理存储结构和逻辑存储结构物理存储结构主要用于描述在操作系统中如何组织和管理数据,逻辑存储结构从用户角度描述数据的组织形式,数据库,数据表,索引,存储过程,第6章逻辑存储结构,本章内容,Oracle逻辑存储结构概述表空间数据块区段,6.1逻辑存储结构概述,逻辑存储结构数据块:BLOCK数据库中最小的I/O单元区:EXTENT由若干连续的数据块组成,是数据库中最小的存储分配单元段:SEGMENT由若干区组成,存储相同类型数据表空间:TABLESPACE由若干段组成,是最大的存储逻辑单元,所有表空间构成数据库,6.2表空间,6.2.1表空间概述1.表空间的概念Oracle数据库在逻辑上可以划分为一系列的逻辑空间,每一个逻辑空间就可以称为一个表空间。一个数据库由有一个或多个表空间构成,不同表空间用于存放不同应用的数据。一个表空间对应一个或多个数据文件,数据文件大小决定了表空间的大小。一个数据文件只能从属于一个表空间。,数据表,索引,存储过程,表空间是数据库对象的容器,一个数据库对象只能存储在一个表空间中,但可以存储在该表空间所对应的一个或多个数据文件中。数据库、表空间、数据文件、数据库对象之间的关系,数据库对象7,2.表空间的分类(1)系统表空间SYSTEM表空间,主要存储:数据库的数据字典;PL/SQL程序的源代码和解释代码;数据库对象的定义等不应把用户数据放在SYSTEM表空间中SYSAUX表空间辅助系统表空间在通常情况下,不允许删除、重命名及传输SYSAUX表空间。,(2)非系统表空间撤销表空间专门进行回滚信息的自动管理由回滚段构成,不包含其他信息由UNDO_TABLESPACE初始化参数设置临时表空间进行临时数据管理,会话结束时自动释放在创建用户时,为用户指定默认临时表空间,通常不使用SYSTEM表空间作为临时表空间用户表空间保存用户数据建议为每个用户建立独立表空间,事务的结束方式,事务:是一组数据库操作的集合,由一组相关的SQL语句组成事务结束方式1.提交:用户执行COMMIT命令或系统自动提交。事务所作的修改写入数据库文件,释放占用资源2.回滚:用户执行ROLLBACK命令事务中所有的操作被取消,数据库恢复到事务开始之前的状态,释放占用资源,(3)大文件表空间与小文件表空间大文件表空间是指一个表空间只包含一个大数据文件,该文件的最大尺寸为128TB或32TB系统默认创建的表空间称为小文件表空间,可以包含最多1024个数据文件,3.表空间的管理方式根据表空间中数据区的管理方式不同,表空间分为字典管理方式和本地管理方式字典管理方式表空间使用数据字典来管理存储空间的分配当进行区的分配与回收时,Oracle将对数据字典中的信息进行更新字典管理方式将渐渐被淘汰。,数据字典,数据字典是在数据库创建过程中创建的,保存了数据库的系统信息以及数据库中所有对象的信息,是数据库系统运行的基础数据字典由一系列表和视图构成,这些表和视图对于所有的用户都是只读的只有Oracle系统才可以对数据字典进行管理与维护在Oracle数据库中,所有数据字典表和视图都属于存储于SYSTEM表空间中,本地管理方式区的分配和管理信息都存储在表空间本身的数据文件中,而与数据字典无关。表空间在每个数据文件中维护一个“位图”结构,用于记录表空间中所有区的分配情况区在分配与回收时,Oracle将对数据文件中的位图进行更新,不会产生回滚信息或重做信息。,表空间本地管理方式的优势:由于在区分配与回收过程中不需要对数据字典进行访问能够避免表空间存储管理操作中的递归现象能够在保留可查询性同时,将整个数据库设置为只读状态。简化了表空间的存储管理降低了用户对数据字典的依赖性。不存在磁盘碎片问题,4.表空间管理策略系统表空间用于存储Oracle自身数据,建议将所有的用户数据保存到其他表空间中将数据字典与用户数据分离。将回滚数据与用户数据分离。将表空间的数据文件保存到不同的硬盘上为不同的应用创建独立的表空间。能够将表空间设置为脱机状态或联机状态。能够将表空间设置为只读状态。能够为某种特殊用途专门设置一个表空间。能够更加灵活地为用户设置表空间配额。,6.2.2表空间的管理(本地管理方式),创建表空间修改表空间表空间的备份删除表空间大文件表空间的管理表空间信息查询利用OEM管理表空间,利用OEM创建表空间,管理属性页存储表空间,创建表空间,1使用语句创建表空间,表空间名称不能超过30个字符,必须以字母开头,可以包含字母、数字以及一些特殊字符(如#、_、$)等;表空间的类型普通表空间、临时表空间和撤销表空间;,(1).创建永久(普通)表空间,CREATETABLESPACE语句,包含子句:设定表空间的数据文件DATAFILE表空间的管理方式EXTENTMANAGEMENT取值为LOCAL(默认)或DICTIONARY。区的分配方式AUTOALLOCATE(默认)或UNIFORMSIZE段的管理方式SEGMENTSPACEMANAGEMENT取值为MANUAL或AUTO(默认),本地管理,数据字典,自动分配,定制分配,手动管理,自动管理,语句形式:CreateTablespace表空间名Datafile文件名Size整数K|MReuseExtentManagementLocalAutoallocate|UniformSize整数K|MSegmentSpaceManagementManual|Auto;,例2.为ORCL数据库创建一个本地管理永久性的表空间ORCLTBS02,数据文件为E:ORACLEORCLTBS02_1.DBF大小为10M,区定制分配,每个区大小为512K,段采用手动管理方式。CREATETABLESPACEORCLTBS02DATAFILEE:ORACLEORCLTBS02_1.DBFSIZE10MEXTENTMANAGEMENTLOCALUNIFORMSIZE512KSEGMENTSPACEMANAGEMENTMANUAL;,例1.为ORCL数据库创建一个本地管理永久性的表空间ORCLTBS01,数据文件为E:ORACLEORCLTBS01_1.DBF大小为20M,区自动扩展,段采用自动管理方式CREATETABLESPACEORCLTBS01DATAFILEE:ORACLEORCLTBS01_1.DBFSIZE20M;,例3.为ORCL数据库创建一个本地管理永久性的表空间ORCLTBS03,数据文件为E:ORACLEORCLTBS03_1.DBF大小为50M,区自动扩展,段采用手动管理方式。CREATETABLESPACEORCLTBS03DATAFILEE:ORACLEORCLTBS03_1.DBFSIZE50MSEGMENTSPACEMANAGEMENTMANUAL;,(2)创建临时表空间,使用CREATETEMPORARYTABLESPACE语句创建临时表空间用TEMPFILE子句设置临时数据文件。需要注意的是临时表空间中区的分配方式只能是UNIFORM,而不能是AUTOALLOCATE,例5,为ORCL数据库创建一个本地管理临时表空间ORCLTEMP1,数据文件为D:ORACLEORCLTEMP1_1.DBF大小20M,每个区大小为16M。CREATETEMPORARYTABLESPACEORCLTEMP1TEMPFILED:ORACLEORCLTEMP1_1.DBFSIZE20MEXTENTMANAGEMENTLOCALUNIFORMSIZE16M;,临时表空间组将一个或多个临时表空间构成一个表空间组。当将临时表空间组作为数据库或用户的默认临时表空间时,用户就可以同时使用该表空间组中所有的临时表空间。临时表空间组不需要显式创建,为临时表空间组指定第一个临时表空间时隐式创建,当临时表空间组中最后一个临时表空间删除时而隐式地删除。,(3)创建撤销表空间,数据库回滚信息保存在回滚段中,撤销表空间专门用于回滚段的自动管理。如果数据库中没有创建撤销表空间,那么将使用SYSTEM表空间来自动管理回滚段。那么一个实例只能使用一个撤销表空间,可以通过参数UNDO_TABLESPACE来指定如果要使用撤销表空间对数据库回滚信息进行自动管理,则必须将初始化参数UNDO_MANAGEMENT设为AUTO。,使用CREATEUNDOTABLESPACE语句创建撤销表空间在该语句中只能指定DATAFILE和EXTENTMANAGEMENTLOCAL两个子句。例7,为ORCL数据库创建一个撤销表空间ORCLUNDO01,数据文件为E:ORACLEORCLUNDO1_1.DBF大小为20MCREATEUNDOTABLESPACEORCLUNDO01DATAFILEE:ORACLEORCLUNDO1_1.DBFSIZE20M;,2.修改表空间,可以对表空间进行下列修改操作:扩展表空间修改表空间可用性修改表空间读/写性设置默认表空间表空间重命名注意不能将本地管理的永久性表空间转换为本地管理的临时表空间,也不能修改本地管理表空间中段的管理方式。,(1)扩展表空间,为表空间添加新数据文件为永久表空间添加新的数据文件ALTERTABLESPACEADDDATAFILE为临时表空间添加新的临时数据文件ALTERTABLESPACEADDTEMPFILE例8,为ORCL数据库的ORCLTBS01表空间添加一个大小为10MB的新数据文件。ALTERTABLESPACEADDDATAFILEE:ORACLEORCLTBS01_2.DBFSIZE10M;,ORCLTBS01,改变已有数据文件的大小ALTERDATABASEDATAFILERESIZE例10,将ORCL数据库的ORCLTBS01表空间的数据文件E:ORACLEORCLTBS01_2.DBF大小增加到20MB。ALTERDATABASEDATAFILEE:ORACLEORCLTBS01_2.DBFRESIZE20M;,改变数据文件的扩展方式如果为数据文件指定了AUTOEXTENDON选项,当数据文件被填满时会自动扩展。可以在创建新数据文件时设定,也可以通过修改已有数据文件设定例11,将ORCL数据库的ORCLTBS01表空间的数据文件E:ORACLEORCLTBS01_2.DBF修改为自动扩展,每次扩展5MB空间,文件最大为100MB。ALTERDATABASEDATAFILEE:ORACLEORCLTBS01_2.DBFAUTOEXTENDONNEXT5MMAXSIZE100M;,无限制UNLIMITED,总结:扩展表空间,为表空间添加新数据文件ALTERTABLESPACEADDDATAFILEALTERTABLESPACEADDTEMPFILE改变已有数据文件的大小ALTERDATABASEDATAFILERESIZE改变数据文件的扩展方式AUTOEXTENDONNEXTMAXSIZE在CREATETABLESPACEALTERTABLESPACEADDALTERDATABASE等语句中使用,练习,为ORCL数据库的ORCLTBS01表空间添加一个大小为20MB的新数据文件E:ORACLEORCLTBS01_3.DBF,并且设为自动扩展,每次扩展10M,最大无限制ALTERTABLESPACEORCLTBS01ADDDATAFILEE:ORACLEORCLTBS01_3.DBFSIZE20MAUTOEXTENDONNEXT10MMAXSIZEUNLIMITED;,(2)修改表空间可用性,当表空间处于联机ONLINE状态时,用户可以对其进行访问,离线状态OFFLINE的表空间是不能进行数据访问的,所对应的所有数据文件也都处于脱机状态。语法ALTERTABLESPACEONLINE|OFFLINESYSTEM表空间,撤销表空间表,临时表空间必须是联机状态例12,将ORCLTBS01表空间设为脱机ALTERTABLESPACEORCLTBS01OFFLINE;,ONLINE,(3)修改表空间读写性,表空间可以是读写方式,也可以是只读方式ALTERTABLESPACEREADONLY|READWRITE表空间只有满足下列要求才可以转换为只读状态:表空间处于联机状态;表空间中不能包含任何活动的回退段;如果表空间正在进行联机数据库备份,不能将它设置为只读状态。例如,ALTERTABLESPACEORCLTBS01READONLY;,(4)设置默认表空间,创建用户时,用户默认的永久表空间为USERS表空间,默认临时表空间为TEMP表空间。设置数据库的默认表空间ALTERDATABASEDEFAULTTABLESPACE设置数据库的默认临时表空间ALTERDATABASEDEFAULTTEMPORARYTABLESPACE例16,将ORCLTBS01表空间设置为ORCL数据库的默认表空间ALTERDATABASEDEFAULTTABLESPACEORCLTBS01;,(5)表空间重命名,ALTERTABLESPACERENAMETO在重命名表空间时该表空间ID号并没有修改如果该表空间是数据库默认表空间,那么重命名后仍然是数据库的默认表空间。不能重命名SYSTEM和SYSAUX表空间不能重命名处于脱机状态或部分数据文件处于脱机状态的表空间。例19,将表空间ORCLTBS01重命名为NEWTBALTERTABLESPACEORCLTBS01RENAMETONEWTB;,3.表空间的备份,对表空间进行联机备份。基本步骤为:将表空间设置为备份模式ALTERTABLESPACEBEGINBACKUP在操作系统中备份表空间所对应的数据文件结束表空间的备份模式ALTERTABLESPACEENDBACKUP,Oracle数据库服务器,图形客户端,Web企业管理器,SQL*PLUS,PL/SQLDeveloper,作业1(1),(3)数据库,表空间,数据文件以及数据库对象之间的关系,数据库,表空间1,表空间n,数据文件1,数据文件n,数据库对象,复习:创建永久(普通)表空间,CREATETABLESPACE语句,包含子句:设定表空间的数据文件DATAFILE表空间的管理方式EXTENTMANAGEMENT取值为LOCAL(默认)或DICTIONARY。区的分配方式AUTOALLOCATE(默认)或UNIFORMSIZE段的管理方式SEGMENTSPACEMANAGEMENT取值为MANUAL或AUTO(默认),本地管理,数据字典,自动分配,定制分配,手动管理,自动管理,语句形式:CreateTablespace表空间名Datafile文件名Size整数K|MReuseExtentManagementLocalAutoallocate|UniformSize整数K|MSegmentSpaceManagementManual|Auto;,作业2(1)使用SQL命令创建一个本地管理方式下自动分区管理的表空间USERTBS1,其对应的数据文件大小为20MBcreatetablespaceusertbs1Datafile(2)使用SQL命令创建一个本地管理方式下的表空间USERTBS2,要求每个分区的大小为512KBcreatetablespaceusertbs2datafileD:testusertbs2.dbfsize20Muniformsize512k;,D:testusertbs1.dbf,size20M;,复习:扩展表空间,为表空间添加新数据文件ALTERTABLESPACEADDDATAFILE改变已有数据文件的大小ALTERDATABASEDATAFILERESIZE改变数据文件的扩展方式AUTOEXTENDONNEXTMAXSIZE在CREATETABLESPACEALTERTABLESPACEADDALTERDATABASE等语句中使用,(3)修改USERTBS1表空间的大小,将该表空间的数据文件改为自动扩展方式,最大值为100MBalterdatabasedatafileD:testusertbs1.dbfautoextendonmaxsize100M;,4.删除表空间,DROPTABLESPACEINCLUDINGCONTENTSANDDATAFILESCASCADECONSTRAINTSSYSTEM和SYSAUX表空间不能删除一旦表空间删除,里面的数据将永久丢失如果表空间中的数据正在使用或者含有未提交的事务,则不能删除,一并删除里面的内容和数据文件,删除涉及其他表空间的外键,例23,删除ORCL数据库的ORCLUNDO01表空间及其所有内容,同时删除其所对应的数据文件,以及其他表空间相关的参照完整性约束DROPTABLESPACEORCLUNDO01INCLUDINGCONTENTSANDDATAFILESCASCADECONSTRAINTS;,(6)表空间信息查询,V$TABLESPACE:从控制文件中获取的表空间名称和编号信息DBA_TABLESPACES:数据库中所有表空间的信息DBA_FREE_SPACE:所有表空间中空闲区的信息DBA_DATA_FILES:数据文件及其所属表空间信息,查询表空间基本信息SELECTTABLESPACE_NAME,EXTENT_MANAGEMENT,ALLOCATION_TYPE,CONTENTSFROMDBA_TABLESPACES;查询表空间数据文件信息SELECTFILE_NAME,BLOCKS,TABLESPACE_NAMEFROMDBA_DATA_FILES;,6.3数据块(BLOCK),1.数据块的概念Oracle数据块是数据库中最小的逻辑存储单元,也是I/O操作的最小单元由一个或者多个操作系统块组成分为标准块和非标准块,标准块在数据库创建时DB_BLOCK_SIZE参数大小设置,不可更改,2数据库块结构,标题表目录行目录,插入新的行或更新,保存行数据,3数据块的管理,对块的管理主要是对块中可用存储空间的管理,确定保留多少空闲空间,避免产生行链接、行迁移。行链接插入数据时,如果行的长度大于块的大小,就需要使用多个块存放行信息。,数据,行迁移数据更新时,如果更新后的数据长度大于块长度,Oracle会将整行的数据从原数据块迁移到新的数据块中。,更新数据,更新数据,原数据,对块的管理分为自动和手动两种。本地管理方式的表空间,如果段的管理方式设置为AUTO,则采用自动方式管理块。设为MANUAL为手动管理。通过为段设置PCTFREE和PCTUSED两个参数来控制数据块中空闲空间的使用。,PCTFREE指定块中必须保留的用于更新的最小空闲空间比例。当数据块的空闲空间百分率低于PCTFREE时,此数据块被标志为USED,此时在数据块中只可以进行更新,而不能插入。PCTUSED指定可以向块中插入数据时,块已使用的最大空间比例。当数据块使用空间低于PCTUSED时,此块标志为FREE,进行插入,PCTUSED=40,数据,PCTFREE=20,=20%,20%,数据,40%,数据,INITRANS可以同时对此数据块进行DML操作的事务的个数。MAXTRANS可以同时对此数据块进行DML操作的最多事务的个数。在数据库中,每一行都有一个物理地址ROWID,由18位十六进制数字组成,1.区的概念区由一系列连续的数据块构成的逻辑存储单元区是存储空间分配与回收的最小单位。当创建一个数据库对象时,Oracle为对象分配若干个区。2.区的管理(1)区的分配本地管理的表空间中,用AUTOALLOCATE选项自动进行区的分配通过表空间UNIFORM选项,指定所有区具有统一大小,,6.4区,(2)区的回收通常区将一直保留在段中,不论区中的数据块是否被使用。只有当段所属的对象被删除时,段中所有的区才会被回收。如果在创建回滚段时指定了OPTIMAL关键字,Oracle会定期回收回滚段中未使用的区。,6.5.1段的概述段是由一个或多个区组成的逻辑存储单元。段是表空间的组成单位通常一个数据库对象只拥有一个段,一个段至少包含一个区段的类型:数据段,索引段,临时段,回滚段,6.5段,数据段数据段用来存储表或簇的数据,可以细分为表数据段、索引表数据段、分区表数据段及簇数据段四种。索引段用来存放索引信息,主要包括存储ROWID和索引键。索引段与表段可以放到处于不同物理位置的表空间中,临时段当用户进行排序查询时,如果在指定的内存无法完成排序,Oracle将自动从用户默认的临时表空间

温馨提示

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

评论

0/150

提交评论