当前位置:文档之家› Oracle存储空间管理及应用方案

Oracle存储空间管理及应用方案

……………………………………………………………精品资料推荐………………………………………………… 1 Oracle存储空间管理及应用

摘要:本文详细介绍了Oracle存储架构及其存储体系的管理和应用,包括表空间、回滚段、临时表等,还对其在管理和应用时常见的错误进行了分析探讨

主题词:Oracle技术 表空间 数据文件 回滚段 临时表 错误

一、 引言 数据库空间的有效使用和维护不仅是数据库管理的重要工作,也是大多数开发人员所关心的内容,它直接关系到数据库性能的发挥。 Oracle提供了不少方法用于数据空间的使用、监控和维护,同时也在各版本中陆续对这方面的功能进行了增强,目的在于简化这方面工作的复杂度,提高应用的运行效率。 本文希望通过系统地介绍这方面的有关概念,让大家能更好地规划使用数据空间,正确使用Oracle提供的有关功能特性,提高应用的执行效率。

二、 Oracle数据库的存储体系及有关概念 2.1 Oracle数据库的逻辑结构 从应用者的角度来考察数据库的组成。自下向上,数据库的逻辑结构共有6层: ……………………………………………………………精品资料推荐…………………………………………………

2 2.2 Oracle数据库的存储结构 数据库的存储结构指逻辑结构在物理上的实现,共有3层

其中: 数据文件:用于存放所有的数据,以DBF为扩展名。 日志文件:记录了对数据库进行的所有操作,以LOG为扩展名。 控制文件:记录了数据库所有文件的控制信息,以CTL为扩展名。

综上,Oracle数据库的数据存储空间在逻辑上分为多个表空间,每个表空间由系统中的一个或多个物理数据文件构成;Oracle存储数据的基本单位是块,其大小在建库时由DB_BLOCK_SIZE参数确定,一个或多个连续的块构成一个区间(EXTENT),它作为数据对象存储的基本单位来使用。在Oracle中,每个基本数据对象使用的空间称为段(SEGMENT),段存放在唯一的表空间上,每个段实际上是一系列区片(更为准确地是数据块)的集合。每个简单数据对象对应一个段;对于分区对象如分区表、索引,则每个(子)……………………………………………………………精品资料推荐………………………………………………… 3 分区对应一个段,由各个(子)分区共同构成一个完整的数据对象。 名词解释: 表空间(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用于存储其所有临时表……………………………………………………………精品资料推荐………………………………………………… 4 的所在。在一些非常繁忙的数据库中,可能会存在多个临时表空间。 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:\oracle\oradata\file1.dbf' size 100m , --表空间的文件1,大小为100M 'c:\oracle\oradata\file2.dbf' size 100m --表空间的文件2,大小为100M minimum extent 550k --最小区间大小为550K [logging/nologging] --记录日志/不记录日志 default storage (initial 500k --初始大小为500K next 500k --下一个区大小为500K maxextents 500 --最大区间数为500个 pctinccease 0) --增量为0 [online/offline] --联机/脱机 ……………………………………………………………精品资料推荐………………………………………………… 5 [permanent/temporary] --永久/临时 【巡检实例】 --创建数据表空间 --数据文件e:\oracle\oradata\qin\xjgl_data01.dbf,初始尺寸1G,可自动扩展,最大为5G --存储属性:初始大小 10M,下一个大小10M,增量为0,最大数量为500 create tablespace xjgl_data datafile 'e:\oracle\oradata\qin\xjgl_data01.dbf' size 1000M autoextend on next 500m maxsize 5000m default storage(initial 10M next 10M maxextents 500 pctincrease 0); --创建索引表空间(最好跟数据表空间建在不同的磁盘上) --数据文件:e:\oracle\oradata\qin\xjgl_idx01.dbf,初始尺寸500G,可自动扩展,最大为2G --存储属性:初始大小 5M,下一个大小5M,增量为0,最大数量为400 create tablespace xjgl_idx datafile 'e:\oracle\oradata\qin\xjgl_idx01.dbf' size 500M autoextend on next 250m maxsize 2000m default storage(initial 5M next 5M maxextents 400 pctincrease 0); --创建LOB段表空间 --数据文件:e:\oracle\oradata\qin\xjgl_idx01.dbf,初始尺寸500G,可自动扩展,最大为1G --存储属性:初始大小 5M,下一个大小5M,增量为0,最大数量为100 create tablespace xjgl_data_lobs datafile 'e:\oracle\oradata\qin\xjgl_data_lobs01.dbf' size 500M autoextend on next 250m maxsize 1000m default storage(initial 10M next 10M maxextents 100 pctincrease 0);

3.2.2 改变表空间尺寸 为表空间增加新的数据文件 其脚本如下所示: alter tablespace xjgl_data add datafile 'e:\oracle\oradata\qin\xjgl_data02.dbf ' size 200m 调整数据文件尺寸其脚本如下所示: alter database datafile 'e:\oracle\oradata\qin\xjgl_data01.dbf ' resize 400m 允许(或禁止)数据文件的自动扩展 其脚本如下所示 alter database datafile 'e:\oracle\oradata\qin\xjgl_data02.dbf' autoextend on next 10m maxsize 500m; 改变数据文件的可用性 其脚本如下所示 alter database datafile 'e:\oracle\oradata\qin\xjgl_data02.dbf ' online[offline] ➢ 以上调整通过Oracle DBA Studio进行也可

➢ 调整数据文件尺寸时,如果是减小,不能减小到小于已用到空间数量

3.2.3 改变表空间状态和存储设置 表空间联机 其脚本如下所示: ALTER TABLESPACE "xjgl_data" ONLINE 表空间脱机 其脚本如下所示: ALTER TABLESPACE "xjgl_data" OFFLINE NORMAL[TEMPORARY/ IMMEDIATE/ FOR RECOVER]

相关主题