资源预览内容
第1页 / 共78页
第2页 / 共78页
第3页 / 共78页
第4页 / 共78页
第5页 / 共78页
第6页 / 共78页
第7页 / 共78页
第8页 / 共78页
第9页 / 共78页
第10页 / 共78页
亲,该文档总共78页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
第6章逻辑存储结构 本章内容 Oracle逻辑存储结构概述表空间数据块区段 本章要求 掌握Oracle数据库逻辑结构组成掌握表空间的作用及其管理掌握扩展区的结构 了解扩展区的管理掌握段的作用 了解段的管理 6 1逻辑存储结构概述 概念逻辑存储结构是从逻辑的角度来分析数据库的构成的 是数据库创建后利用逻辑概念来描述Oracle数据库内部数据的组织和管理形式 在操作系统中 没有数据库逻辑存储结构信息 而只有物理存储结构信息 数据库的逻辑存储结构概念存储在数据库的数据字典中 可以通过数据字典查询逻辑存储结构信息 逻辑结构单元类型数据块 BLOCK区 EXTENT段 SEGMENT表空间 TABLESPACE 数据库的存储层次关系 数据库逻辑存储结构之间的关系 表空间 6 2表空间 表空间概述表空间的管理 7 2 1表空间概述 表空间的概念表空间的分类表空间的管理方式表空间的管理策略 1 表空间概念 Oracle数据库在逻辑上可以划分为一系列的逻辑空间 每一个逻辑空间就可以称为一个表空间 一个数据库由有一个或多个表空间构成 不同表空间用于存放不同应用的数据 表空间大小决定了数据库的大小 一个表空间对应一个或多个数据文件 数据文件大小决定了表空间的大小 一个数据文件只能从属于一个表空间 表空间是存储模式对象的容器 一个数据库对象只能存储在一个表空间中 分区表和分区索引除外 但可以存储在该表空间所对应的一个或多个数据文件中 若表空间只有一个数据文件 则该表空间中所有对象都保存在该文件中 若表空间对应多个数据文件 则表空间中的对象可以分布于不同的数据文件中 数据库 表空间 数据文件 数据库对象之间的关系 2 表空间的分类 系统表空间SYSTEM表空间 主要存储 数据库的数据字典 PL SQL程序的源代码和解释代码 包括存储过程 函数 包 触发器等 数据库对象的定义 如表 视图 序列 同义词等 SYSAUX表空间SYSAUX表空间是Oracle10g新增的辅助系统表空间 主要用于存储数据库组件等信息 以减小SYSTEM表空间的负荷 在通常情况下 不允许删除 重命名及传输SYSAUX表空间 非系统表空间撤销表空间专门进行回滚信息的自动管理 由UNDO TABLESPACE参数设置 临时表空间专门进行临时数据管理的表空间在数据库实例运行过程中 执行排序等SQL语句时会产生大量的临时数据 这些临时数据将保存在数据库临时表空间中 默认临时表空间用户表空间保存用户数据 大文件表空间与小文件表空间所谓大文件表空间 BigfileTablespace 是指一个表空间只包含一个大数据文件 该文件的最大尺寸为128TB 数据块大小为32KB 或只32TB 数据块大小为8KB 与大文件表空间相对应 系统默认创建的表空间称为小文件表空间 SmallfileTablespace 如SYSTEM表空间 SYSAUX表空间等 小文件表空间可以包含多达1024个数据文件 小文件表空间的总容量与大文件表空间的容量基本相似 3 表空间的管理方式 字典管理方式表空间使用数据字典来管理存储空间的分配 当进行区的分配与回收时 Oracle将对数据字典中的相关基础表进行更新 同时会产生回滚信息和重做信息 字典管理方式将渐渐被淘汰 本地管理方式在本地管理方式中 区的分配和管理信息都存储在表空间的数据文件中 而与数据字典无关 表空间在每个数据文件中维护一个 位图 结构 用于记录表空间中所有区的分配情况 因此区在分配与回收时 Oracle将对数据文件中的位图进行更新 不会产生回滚信息或重做信息 表空间本地管理方式的优势 由于在区分配与回收过程中不需要对数据字典进行访问 提高了表空间存储管理操作的速度和并发性 能够避免表空间存储管理操作中的递归现象 提高了存储空间管理操作性能 由于本地管理的临时表空间在使用过程中不会产生任何重做信息和撤销信息 因此既使查询操作中包含排序 对数据库来说也完全是只读操作 这样能够在保留可查询性同时 将整个数据库设置为只读状态 这种数据库可以作为备用数据库使用 简化了表空间的存储管理 由Oracle自动完成存储管理操作 降低了用户对数据字典的依赖性 不存在磁盘碎片问题 因为必要的信息都存储在数据文件的位图中 而不是保存在数据字典中 4 表空间管理策略 将数据字典与用户数据分离 避免由于数据字典对象和用户对象保存在一个数据文件中而产生I O冲突 将回滚数据与用户数据分离 避免由于硬盘损坏而导致永久性的数据丢失 将表空间的数据文件分散保存到不同的硬盘上 平均分布物理I O操作 为不同的应用创建独立的表空间 避免多个应用之间的相互干扰 能够将表空间设置为脱机状态或联机状态 以便对数据库的一部分进行备份或恢复 能够将表空间设置为只读状态 从而将数据库的一部分设置为只读状态 能够为某种特殊用途专门设置一个表空间 如临时表空间 优化表空间的使用效率 能够更加灵活地为用户设置表空间配额 7 2 2表空间的管理 本地管理方式 创建表空间修改表空间表空间的备份删除表空间大文件表空间的管理表空间信息查询利用OEM管理表空间 1 创建表空间 在创建本地管理方式下的表空间时 应该确定表空间的名称 类型 对应的数据文件的名称和位置以及区的分配方式 段的管理方式表空间名称不能超过30个字符 必须以字母开头 可以包含字母 数字以及一些特殊字符 如 等 表空间的类型包括普通表空间 临时表空间和撤销表空间 表空间中区的分配方式包括两种方式 自动扩展 AUTOALLOCATE 和定制 UNIFORM 段的管理包括两种方式 自动管理 AUTO 和手动管理 MANUAL 创建永久表空间 创建永久表空间使用CREATETABLESPACE语句来实现 该语句包含以下几个子句 DATAFILE 设定表空间对应的数据文件 EXTENTMANAGEMENT 指定表空间的管理方式 取值为LOCAL 默认 或DICTIONARY AUTOALLOCATE 默认 或UNIFORM 设定区的分配方式 SEGMENTSPACEMANAGEMENT 设定段的管理方式 其取值为MANUAL或AUTO 默认 为ORCL数据库创建一个永久性的表空间 区自动扩展 段采用自动管理方式CREATETABLESPACEORCLTBS1DATAFILE D ORACLE PRODUCT 10 2 0 ORADATA ORCL ORCLTBS1 1 DBF SIZE50M 为ORCL数据库创建一个永久性的表空间 区定制分配 段采用自动管理方式 CREATETABLESPACEORCLTBS2DATAFILE D ORACLE PRODUCT 10 2 0 ORADATA ORCL ORCLTBS2 1 DBF SIZE50MEXTENTMANAGEMENTLOCALUNIFORMSIZE512K 为ORCL数据库创建一个永久性的表空间 区自动扩展 段采用手动管理方式 CREATETABLESPACEORCLTBS3DATAFILE D ORACLE PRODUCT 10 2 0 ORADATA ORCL ORCLTBS3 1 DBF SIZE50MSEGMENTSPACEMANAGEMENTMANUAL 为ORCL数据库创建一个永久性的表空间 区定制分配 段采用手动管理方式 CREATETABLESPACEORCLTBS4DATAFILE D ORACLE PRODUCT 10 2 0 ORADATA ORCL ORCLTBS4 1 DBF SIZE50MEXTENTMANAGEMENTLOCALUNIFORMSIZE512KSEGMENTSPACEMANAGEMENTMANUAL 创建临时表空间 使用CREATETEMPORARYTABLESPACE语句创建临时表空间 用TEMPFILE子句设置临时数据文件 需要注意的是临时表空间中区的分配方式只能是UNIFORM 而不能是AUTOALLOCATE 因为这样才能保证不会在临时段中产生过多的存储碎片 为ORCL数据库创建一个临时表空间ORCLTEMP1 CREATETEMPORARYTABLESPACEORCLTEMP1TEMPFILE D ORACLE PRODUCT 10 2 0 ORADATA ORCL ORCLTEMP1 1 DBF SIZE20MEXTENTMANAGEMENTLOCALUNIFORMSIZE16M 临时表空间组将一个或多个临时表空间构成一个表空间组 当将临时表空间组作为数据库或用户的默认临时表空间时 用户就可以同时使用该表空间组中所有的临时表空间 避免了由于单个临时表空间的空间不足而导致数据库运行故障 同时 使用临时表空间组 可以保证在一个简单并行操作中多个并行服务的执行 临时表空间组不需要显式创建 为临时表空间组指定第一个临时表空间时隐式创建 当临时表空间组中最后一个临时表空间删除时而隐式地删除 通过在CREATETEMPORARYTABLSPACE或ALTERTABLESPACE语句中使用TABLESPACEGROUP短语创建临时表空间组 为ORCL数据库创建一个临时表空间ORCLTEMP2 并放入临时表空间组temp group1 同时 将临时表空间ORCLTEMP1也放入该temp group1中 CREATETEMPORARYTABLESPACEORCLTEMP2TEMPFILE D ORACLE PRODUCT 10 2 0 ORADATA ORCL ORCLTEMP2 1 DBF SIZE20MEXTENTMANAGEMENTLOCALUNIFORMSIZE16MTABLESPACEGROUPtemp group1 ALTERTABLESPACEORCLTEMP1TABLESPACEGROUPtemp group1 创建撤销表空间 在Oracle10g中引入了撤销表空间的概念 专门用于回滚段的自动管理 如果数据库中没有创建撤销表空间 那么将使用SYSTEM表空间来管理回滚段 如果数据库中包含多个撤销表空间 那么一个实例只能使用一个处于活动状态的撤销表空间 可以通过参数UNDO TABLESPACE来指定 如果数据库中只包含一个撤销表空间 那么数据库实例启动后会自动使用该撤销表空间 如果要使用撤销表空间对数据库回滚信息进行自动管理 则必须将初始化参数UNDO MANAGEMENT AUTO 可以使用CREATEUNDOTABLESPACE语句创建撤销表空间 但是在该语句中只能指定DATAFILE和EXTENTMANAGEMENTLOCAL两个子句 而不能指定其他子句 为ORCL数据库创建一个撤销表空间 CREATEUNDOTABLESPACEORCLUNDO1DATAFILE D ORACLE ORADATA ORCL ORCLUNDO1 1 DBF SIZE20M 如果要在数据库使用该撤销表空间 需要设置参数UNDO MANAGEMENT AUTOUNDO TABLESPACE ORCLUNDO1 2 修改表空间 可以对表空间进行下列修改操作 扩展表空间修改表空间可用性修改表空间读 写性设置默认表空间表空间重命名注意不能将本地管理的永久性表空间转换为本地管理的临时表空间 也不能修改本地管理表空间中段的管理方式 扩展表空间 为表空间添加数据文件通过ALTERTABLESPACE ADDDATAFILE语句为永久表空间添加数据文件 通过ALTERTABLESPACE ADDTEMPFILE语句为临时表空间添加临时数据文件 为ORCL数据库的ORCLTBS1表空间添加一个大小为10MB的新数据文件 ALTERTABLESPACEORCLTBS1ADDDATAFILE D ORACLE PRODUCT 10 2 0 ORADATA ORCL ORCLTBS1 2 DBF SIZE10M 为ORCL数据库的ORCLTEMP1表空间添加一个大小为10MB的临时数据文件 ALTERTABLESPACEORCLTEMP1ADDTEMPFILE D O
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号