资源预览内容
第1页 / 共18页
第2页 / 共18页
第3页 / 共18页
第4页 / 共18页
第5页 / 共18页
第6页 / 共18页
第7页 / 共18页
第8页 / 共18页
第9页 / 共18页
第10页 / 共18页
亲,该文档总共18页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
Oracle存储空间管理及应用摘要:本文详细介绍了Oracle存储架构及其存储体系的管理和应用,包括表空间、回滚段、临时表等,还对其在管理和应用时常见的错误进行了分析探讨主题词:Oracle技术 表空间 数据文件 回滚段 临时表 错误一、 引言数据库空间的有效使用和维护不仅是数据库管理的重要工作,也是大多数开发人员所关心的内容,它直接关系到数据库性能的发挥。Oracle提供了不少方法用于数据空间的使用、监控和维护,同时也在各版本中陆续对这方面的功能进行了增强,目的在于简化这方面工作的复杂度,提高应用的运行效率。本文希望通过系统地介绍这方面的有关概念,让大家能更好地规划使用数据空间,正确使用Oracle提供的有关功能特性,提高应用的执行效率。二、 Oracle数据库的存储体系及有关概念2.1 Oracle数据库的逻辑结构从应用者的角度来考察数据库的组成。自下向上,数据库的逻辑结构共有6层:2.2 Oracle数据库的存储结构数据库的存储结构指逻辑结构在物理上的实现,共有3层 其中:数据文件:用于存放所有的数据,以DBF为扩展名。日志文件:记录了对数据库进行的所有操作,以LOG为扩展名。控制文件:记录了数据库所有文件的控制信息,以CTL为扩展名。综上,Oracle数据库的数据存储空间在逻辑上分为多个表空间,每个表空间由系统中的一个或多个物理数据文件构成;Oracle存储数据的基本单位是块,其大小在建库时由DB_BLOCK_SIZE参数确定,一个或多个连续的块构成一个区间(EXTENT),它作为数据对象存储的基本单位来使用。在Oracle中,每个基本数据对象使用的空间称为段(SEGMENT),段存放在唯一的表空间上,每个段实际上是一系列区片(更为准确地是数据块)的集合。每个简单数据对象对应一个段;对于分区对象如分区表、索引,则每个(子)分区对应一个段,由各个(子)分区共同构成一个完整的数据对象。名词解释:表空间(Tablespace):为数据库提供使用空间的逻辑结构,其对应物理结构是数据文件,一个表空间可以包含多个数据文件。表空间可分为System表空间、非System表空间和回滚段表空间,其中,System表空间是安装数据库时自动建立的,它包含数据库的全部数据字典,存储过程、包、函数和触发器的定义以及系统回滚段。除此之外,还能包含用户数据。段(Segment):数据库一种逻辑结构,如表段,索引段,回滚段等,段存在于表空间中,并对应一定的存储空间,共有四种类型的段: 表/数据(Table/Data):保存表数据 索引(Index):保存索引数据 回滚(Rollback):保存回滚数据,用于回滚一次事务处理,以及保持读操作一致性 临时(Temporary):用于满足排序的需要,比如查询和索引创建中的ORDER BY从句区间(Extent):段的存储可以分成一个或多个区间,每个区间占用一定数量的数据块(block)块(Block):数据库最小的存储单位,由Block参数(db_block_size)指定三、 表空间及数据文件3.1 表空间简介通常,有以下几种类型的表空间(除数据表空间需用户自己创建外,其它6种表空间在数据库创建时均会默认建立1个):3.1.1 系统表空间(SYSTEM)系统表空间是每个Oracle数据库都必须具备的部分,是安装数据库时自动建立的。它包含数据库的全部数据字典,存储过程、包、函数和触发器的定义以及系统回滚段等管理数据库自身所需的信息。一般来说,应该尽量避免在SYSTEM表中存储非SYSTEM用户的对象。因为这样会带来数据库维护和管理的很多问题。一旦SYSTEM表空间损坏了,只能重新生成数据库。3.1.2 临时表空间(TEMP)临时表空间并不包含真正的数据,临时表空间中存储数据库中动态生成的对象,如排序操作或表连接时的临时数据等;临时表空间也是Oracle用于存储其所有临时表的所在。在一些非常繁忙的数据库中,可能会存在多个临时表空间。3.1.3 工具表空间(TOOLS)工具表空间用于保存数据库工具软件所需的数据库对象,如像Oracle Reports这样的工具软件在工作时就有自己的一组专用表。Oracle Reports把这些表存放在数据库中。大多数DBA都将支持工具运行所需的表存放在这个表空间中。3.1.4 用户表空间(USERS)用户表空间用于存放用户的私有信息,用户的专用数据库对象。3.1.5 回滚表空间(RBS)Oracle数据库需要在一个地方保存恢复(Undo)信息。回滚表空间中存放数据库对象的回滚段,在出现失败和临时终止事务时,可以用回滚段使数据库对象退回到旧值。3.1.6 数据和索引表空间数据表空间用来存放用户的应用数据,索引表空间用来存放应用数据对象的索引。索引可以帮助Oracle迅速找到表中存放的数据。3.2 表空间的管理和使用3.2.1 创建表空间创建表空间的脚本示例如下:create tablespace ts_name datafile-创建名为ts-name的表空间 c:oracleoradatafile1.dbf size 100m ,-表空间的文件1,大小为100Mc:oracleoradatafile2.dbf size 100m -表空间的文件2,大小为100Mminimum extent 550k -最小区间大小为550Klogging/nologging-记录日志/不记录日志default storage (initial 500k -初始大小为500Knext 500k -下一个区大小为500Kmaxextents 500 -最大区间数为500个pctinccease 0) -增量为0online/offline -联机/脱机permanent/temporary -永久/临时【巡检实例】-创建数据表空间-数据文件e:oracleoradataqinxjgl_data01.dbf,初始尺寸1G,可自动扩展,最大为5G-存储属性:初始大小 10M,下一个大小10M,增量为0,最大数量为500create tablespace xjgl_data datafile e:oracleoradataqinxjgl_data01.dbf size 1000Mautoextend on next 500m maxsize 5000m default storage(initial 10M next 10M maxextents 500 pctincrease 0);-创建索引表空间(最好跟数据表空间建在不同的磁盘上)-数据文件:e:oracleoradataqinxjgl_idx01.dbf,初始尺寸500G,可自动扩展,最大为2G-存储属性:初始大小 5M,下一个大小5M,增量为0,最大数量为400create tablespace xjgl_idx datafile e:oracleoradataqinxjgl_idx01.dbf size 500Mautoextend on next 250m maxsize 2000m default storage(initial 5M next 5M maxextents 400 pctincrease 0);-创建LOB段表空间-数据文件:e:oracleoradataqinxjgl_idx01.dbf,初始尺寸500G,可自动扩展,最大为1G-存储属性:初始大小 5M,下一个大小5M,增量为0,最大数量为100create tablespace xjgl_data_lobs datafile e:oracleoradataqinxjgl_data_lobs01.dbf size 500Mautoextend on next 250m maxsize 1000mdefault storage(initial 10M next 10M maxextents 100 pctincrease 0);3.2.2 改变表空间尺寸为表空间增加新的数据文件 其脚本如下所示:alter tablespace xjgl_data add datafile e:oracleoradataqinxjgl_data02.dbf size 200m 调整数据文件尺寸其脚本如下所示:alter database datafile e:oracleoradataqinxjgl_data01.dbf resize 400m允许(或禁止)数据文件的自动扩展 其脚本如下所示alter database datafile e:oracleoradataqinxjgl_data02.dbf autoextend on next 10m maxsize 500m; 改变数据文件的可用性 其脚本如下所示alter database datafile e:oracleoradataqinxjgl_data02.dbf onlineoffline 以上调整通过Oracle DBA Studio进行也可 调整数据文件尺寸时,如果是减小,不能减小到小于已用到空间数量3.2.3 改变表空间状态和存储设置表空间联机 其脚本如下所示:ALTER TABLESPACE xjgl_data ONLINE表空间脱机 其脚本如下所示:ALTER TABLESPACE xjgl_data OFFLINE NORMALTEMPORARY/ IMMEDIATE/ FOR RECOVER设置表空间为只读ALTER TABLESPACE xjgl_data READ ONLY修改表空间的存储设置ALTER TABLESPACE xjgl_data DEFAULT STORAGE ()整理空间碎片可通过先将某表空间用export导出,再用import将其导入实现删除表空间DROP TABLESPACE “xjgl_data” including contents;注: 1) 表空间非空时,加上including contents关键字才可将其删除2) 删除表空间并不是删除正在使用的数据文件,必须使用操作系统删除数据数据文件3.2.4表空间迁移可通过下列步骤实现(只适用于非系统表空间。不能用于回滚段、临时段的表空间)1) 置表空间状态为脱机alter tablespace xjgl_data offline;2) 使用操作系统命令来移动文件$move e:oracleoradataqinxjgl_data01.dbf e:3) 使用alter tablespace来更改数据库中的文件名alter database rename file e:oracleoradataqinxjgl_data01.dbf to e:xjgl_data01.dbf;4) 重新置表空间状态为联机alter tablespace xjgl_data online;3.3 管理数据文件数据文件是构成
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号