Oracle逻辑存储结构.ppt

上传人:sh****n 文档编号:6395705 上传时间:2020-02-24 格式:PPT 页数:91 大小:3.19MB
返回 下载 相关 举报
Oracle逻辑存储结构.ppt_第1页
第1页 / 共91页
Oracle逻辑存储结构.ppt_第2页
第2页 / 共91页
Oracle逻辑存储结构.ppt_第3页
第3页 / 共91页
点击查看更多>>
资源描述
第二篇 体系结构篇 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 M Reuse ExtentManagementLocalAutoallocate UniformSize整数K MSegmentSpaceManagementManual Auto 例2 为ORCL数据库创建一个本地管理永久性的表空间ORCLTBS02 数据文件为E ORACLE ORCLTBS02 1 DBF大小为10M 区定制分配 每个区大小为512K 段采用手动管理方式 CREATETABLESPACEORCLTBS02DATAFILE E ORACLE ORCLTBS02 1 DBF SIZE10MEXTENTMANAGEMENTLOCALUNIFORMSIZE512KSEGMENTSPACEMANAGEMENTMANUAL 例1 为ORCL数据库创建一个本地管理永久性的表空间ORCLTBS01 数据文件为 E ORACLE ORCLTBS01 1 DBF 大小为20M 区自动扩展 段采用自动管理方式CREATETABLESPACEORCLTBS01DATAFILE E ORACLE ORCLTBS01 1 DBF SIZE20M 例3 为ORCL数据库创建一个本地管理永久性的表空间ORCLTBS03 数据文件为 E ORACLE ORCLTBS03 1 DBF 大小为50M 区自动扩展 段采用手动管理方式 CREATETABLESPACEORCLTBS03DATAFILE E ORACLE ORCLTBS03 1 DBF SIZE50MSEGMENTSPACEMANAGEMENTMANUAL 2 创建临时表空间 使用CREATETEMPORARYTABLESPACE语句创建临时表空间用TEMPFILE子句设置临时数据文件 需要注意的是临时表空间中区的分配方式只能是UNIFORM 而不能是AUTOALLOCATE 例5 为ORCL数据库创建一个本地管理临时表空间ORCLTEMP1 数据文件为 D ORACLE ORCLTEMP1 1 DBF 大小20M 每个区大小为16M CREATETEMPORARYTABLESPACEORCLTEMP1TEMPFILE D ORACLE ORCLTEMP1 1 DBF SIZE20MEXTENTMANAGEMENTLOCALUNIFORMSIZE16M 临时表空间组将一个或多个临时表空间构成一个表空间组 当将临时表空间组作为数据库或用户的默认临时表空间时 用户就可以同时使用该表空间组中所有的临时表空间 临时表空间组不需要显式创建 为临时表空间组指定第一个临时表空间时隐式创建 当临时表空间组中最后一个临时表空间删除时而隐式地删除 3 创建撤销表空间 数据库回滚信息保存在回滚段中 撤销表空间专门用于回滚段的自动管理 如果数据库中没有创建撤销表空间 那么将使用SYSTEM表空间来自动管理回滚段 那么一个实例只能使用一个撤销表空间 可以通过参数UNDO TABLESPACE来指定如果要使用撤销表空间对数据库回滚信息进行自动管理 则必须将初始化参数UNDO MANAGEMENT设为AUTO 使用CREATEUNDOTABLESPACE语句创建撤销表空间在该语句中只能指定DATAFILE和EXTENTMANAGEMENTLOCAL两个子句 例7 为ORCL数据库创建一个撤销表空间ORCLUNDO01 数据文件为E ORACLE ORCLUNDO1 1 DBF大小为20MCREATEUNDOTABLESPACEORCLUNDO01DATAFILE E ORACLE ORCLUNDO1 1 DBF SIZE20M 2 修改表空间 可以对表空间进行下列修改操作 扩展表空间修改表空间可用性修改表空间读 写性设置默认表空间表空间重命名注意不能将本地管理的永久性表空间转换为本地管理的临时表空间 也不能修改本地管理表空间中段的管理方式 1 扩展表空间 为表空间添加新数据文件为永久表空间添加新的数据文件ALTERTABLESPACE ADDDATAFILE为临时表空间添加新的临时数据文件ALTERTABLESPACE ADDTEMPFILE例8 为ORCL数据库的ORCLTBS01表空间添加一个大小为10MB的新数据文件 ALTERTABLESPACEADDDATAFILE E ORACLE ORCLTBS01 2 DBF SIZE10M ORCLTBS01 改变已有数据文件的大小ALTERDATABASEDATAFILE RESIZE例10 将ORCL数据库的ORCLTBS01表空间的数据文件E ORACLE ORCLTBS01 2 DBF大小增加到20MB ALTERDATABASEDATAFILE E ORACLE ORCLTBS01 2 DBF RESIZE20M 改变数据文件的扩展方式如果为数据文件指定了AUTOEXTENDON选项 当数据文件被填满时会自动扩展 可以在创建新数据文件时设定 也可以通过修改已有数据文件设定例11 将ORCL数据库的ORCLTBS01表空间的数据文件E ORACLE ORCLTBS01 2 DBF修改为自动扩展 每次扩展5MB空间 文件最大为100MB ALTERDATABASEDATAFILE E ORACLE ORCLTBS01 2 DBF AUTOEXTENDONNEXT5MMAXSIZE100M 无限制UNLIMITED 总结 扩展表空间 为表空间添加新数据文件ALTERTABLESPACE ADDDATAFILEALTERTABLESPACE ADDTEMPFILE改变已有数据文件的大小ALTERDATABASEDATAFILE RESIZE改变数据文件的扩展方式AUTOEXTENDONNEXT MAXSIZE在CREATETABLESPACE ALTERTABLESPACEADD ALTERDATABASE 等语句中使用 练习 为ORCL数据库的ORCLTBS01表空间添加一个大小为20MB的新数据文件 E ORACLE ORCLTBS01 3 DBF 并且设为自动扩展 每次扩展10M 最大无限制ALTERTABLESPACEORCLTBS01ADDDATAFILE E ORACLE ORCLTBS01 3 DBF SIZE20MAUTOEXTENDONNEXT10MMAXSIZEUNLIMITED 2 修改表空间可用性 当表空间处于联机ONLINE状态时 用户可以对其进行访问 离线状态OFFLINE的表空间是不能进行数据访问的 所对应的所有数据文件也都处于脱机状态 语法ALTERTABLESPACE ONLINE OFFLINESYSTEM表空间 撤销表空间表 临时表空间必须是联机状态例12 将ORCLTBS01表空间设为脱机ALTERTABLESPACEORCLTBS01OFFLINE ONLINE 3 修改表空间读写性 表空间可以是读写方式 也可以是只读方式ALTERTABLESPACE READONLY READWRITE表空间只有满足下列要求才可以转换为只读状态 表空间处于联机状态 表空间中不能包含任何活动的回退段 如果表空间正在进行联机数据库备份 不能将它设置为只读状态 例如 ALTERTABLESPACEORCLTBS01READONLY 4 设置默认表空间 创建用户时 用户默认的永久表空间为USERS表空间 默认临时表空间为TEMP表空间 设置数据库的默认表空间ALTERDATABASEDEFAULTTABLESPACE 设置数据库的默认临时表空间ALTERDATABASEDEFAULTTEMPORARYTABLESPACE 例16 将ORCLTBS01表空间设置为ORCL数据库的默认表空间ALTERDATABASEDEFAULTTABLESPACEORCLTBS01 5 表空间重命名 ALTERTABLESPACE RENAMETO在重命名表空间时该表空间ID号并没有修改如果该表空间是数据库默认表空间 那么重命名后仍然是数据库的默认表空间 不能重命名SYSTEM和SYSAUX表空间不能重命名处于脱机状态或部分数据文件处于脱机状态的表空间 例19 将表空间ORCLTBS01重命名为NEWTBALTERTABLESPACEORCLTBS01RENAMETONEWTB 3 表空间的备份 对表空间进行联机备份 基本步骤为 将表空间设置为备份模式ALTERTABLESPACE BEGINBACKUP在操作系统中备份表空间所对应的数据文件结束表空间的备份模式ALTERTABLESPACE ENDBACKUP 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 M Reuse ExtentManagementLocalAutoallocate UniformSize整数K MSegmentSpaceManagementManual Auto 作业2 1 使用SQL命令创建一个本地管理方式下自动分区管理的表空间USERTBS1 其对应的数据文件大小为20MBcreatetablespaceusertbs1Datafile 2 使用SQL命令创建一个本地管理方式下的表空间USERTBS2 要求每个分区的大小为512KBcreatetablespaceusertbs2datafile D test usertbs2 dbf size20Muniformsize512k D test usertbs1 dbf size20M 复习 扩展表空间 为表空间添加新数据文件ALTERTABLESPACE ADDDATAFILE改变已有数据文件的大小ALTERDATABASEDATAFILE RESIZE改变数据文件的扩展方式AUTOEXTENDONNEXT MAXSIZE在CREATETABLESPACE ALTERTABLESPACEADD ALTERDATABASE 等语句中使用 3 修改USERTBS1表空间的大小 将该表空间的数据文件改为自动扩展方式 最大值为100MBalterdatabasedatafile D test usertbs1 dbf autoextendonmaxsize100M 4 删除表空间 DROPTABLESPACE INCLUDINGCONTENTSANDDATAFILESCASCADECONSTRAINTSSYSTEM和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 数据 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将自动从用户默认的临时表空间中指派临时段进行排序 会话结束 数据将从临时段中自动删除 回滚段回滚段用于保存数据库的回滚信息 一个事务只能使用一个回滚段存放它的回滚信息 但是一个回滚段可以存放多个事务的回滚信息 回滚段可以动态创建和撤销 Transactionrollback 事务回滚 Transactionrecovery 数据库恢复 Undosegment回滚段 Readconsistency 读一致性 Flashbackquery 闪回查询 6 5 2回滚段 1 回滚段的作用 2回滚段的种类 系统回退段创建数据库时系统自动在SYSTEM表空间中创建一个 SYSTEM 系统回退段 该回退段只用于系统事务的回退处理 非系统回退段用户可以创建非SYSTEM回退段 用于用户事务的回退处理 3回滚段的管理 自动撤销管理将初始化参数UNDO MANAGEMENT设置为AUTO 则启动自动撤销管理方式数据库运行时的回滚信息就由撤销表空间自动管理 手动撤销管理 逐渐淘汰 将数据库初始化参数UNDO MANAGEMENT设置为MANUAL 则需要手动进行撤销管理 DBA以手动方式对回滚段进行管理 4回滚段的查询 DBA ROLLBACK SEGS 包含所有回滚段信息 包括回滚段的名称 所属表空间 DBA SEGMENTS 包含数据库中所有段的信息 Oracle数据库的逻辑结构 数据表 索引 存储过程 表空间的分类 1 系统表空间 2 非系统表空间撤销表空间临时表空间用户表空间创建普通表空间CreateTablespace表空间名Datafile 文件名 Size整数K M Reuse ExtentManagementLocalAutoallocate UniformSize整数K MSegmentSpaceManagementAuto Manual 数据文件 本地管理 区的管理 段的管理 SYSTEMSYSAUX 例3 为ORCL数据库创建一个本地管理永久性的表空间ORCLTBS03 数据文件为 E ORACLE ORCLTBS03 1 DBF 大小为50M 区自动扩展 段采用手动管理方式 CREATETABLESPACEORCLTBS03DATAFILE E ORACLE ORCLTBS03 1 DBF SIZE50MSEGMENTSPACEMANAGEMENTMANUAL
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!