ITPub博客

首页 > Linux操作系统 > Linux操作系统 > Oracle表空间创建参数解析

Oracle表空间创建参数解析

原创 Linux操作系统 作者:realkid4 时间:2011-06-13 21:32:42 0 删除 编辑

 

 

表空间TablespaceOracle数据库逻辑结构中的一个层次。创建管理表空间和对应的数据文件,是DBA的一项重要工作内容。本篇从不同的表空间特性谈起,说明使用的参数特性。

 

下面是一个使用命令行创建表空间的实例。

 

 

SQL> create tablespace tradway datafile '/u01/oradata/WILSON/datafile/trad.dbf' size 100m autoextend off extent management local uniform. size 1m segment space management manual;

 

Tablespace created

 

 

对应数据字典的信息为:

 

 

SQL> select tablespace_name, extent_management, allocation_type,SEGMENT_SPACE_MANAGEMENT from dba_tablespaces;

 

TABLESPACE_NAME                EXTENT_MANAGEMENT ALLOCATION_TYPE SEGMENT_SPACE_MANAGEMENT

------------------------------ ----------------- --------------- ------------------------

(篇幅原因,有省略……

TRADWAY                        LOCAL             UNIFORM   MANUAL

 

9 rows selected

 

 

在使用命令行创建表空间Tablespace的过程中,包括几个方面的参数。

 

ü        数据文件参数:包括表空间对应数据文件名称,初始大小和可变化规则;

ü        Extent(分区)分配规则方案:表空间对segment对象进行增加空间分配的时候,使用的分配方法和策略;

ü        Segment(段)对象管理方式:分为自动段对象管理或者手动段对象管理;

 

下面分别进行介绍:

 

1、数据文件Datafile参数

 

表空间是“表、段、区、块”Oracle四层逻辑结构中唯一与特定物理文件对应的层次。一个表空间可以对应不同硬盘上的多个文件,而一个文件只能属于一个表空间

 

在建立表空间的时候,都会生成至少一个数据文件作为表空间信息保存的地方。如果在Create tablespace时没有进行指定datafile字句,那么Oracle会自动依据OMF的方式创建出一个数据文件。

 

指定数据文件的字句是使用datafile作为关键字,后面内容包括文件路径、初始大小、拓展方式和每次增加空间大小。

 

 

SQL> create tablespace test datafile 'd:\oradata\orcl\test.dbf' size 10m autoextend on next 1m maxsize 100m;

 

Tablespace created

 

ü        size子句:指定生成数据文件的初始大小,默认值通常为100m。对成熟的系统部署移植工作而言,通常是可以确定文件的固定大小。避免经常性的文件膨胀,引起性能变化;

ü        autoextend开关与next子句:文件大小变化开关是通过autoextend来实现的。如果设置on,表示该文件允许进行动态拓展,文件写满之后就会以next指定的大小进行拓展。如果设置为off,则该文件不进行拓展;

ü        next子句:当文件设置为可拓展时,next为每次进行拓展的步长。如果数据文件是经常大批量的增加,设置一个较大的next值为好;

ü        maxsize子句:文件大小上限;

 

 

2extent分区分配方案

 

表空间Tablespace内部容纳的逻辑结构就是段segment对象。段对象通常是和数据库各个Schema中的对象相关联。表空间空间管理中一个重要方面就是将新的extent分配给segment对象。一个segment会对应一个或者多个extent对象。extent区就是连续的block块集合。

 

Oracle发展历程看,extent分配方案有两个阶段。首先出现的是Dictionary Mangage Tablespace,就是数据字典管理方式。数据库中维护一个数据表,每次进行extent分配管理的时候,都要访问该数据表。DMT代表了一个时代,同时也伴随着致命的缺陷。

 

数据库的一个重要指标就是并行度。一旦出现并行瓶颈,就意味着系统架构存在缺陷。DML就是这样的一个问题,当数据库表空间存在大量的分配请求时,该数据表容易形成瓶颈。于是,DML就被一种新的分配方法Locally Mangage TablespaceLMT)所取代。

 

 

目前的Oracle数据库,都是缺省使用LMT方法的。LMT简单来说,就是利用位图表技术,将分配extent的方法和记录记录在数据文件的文件头上。这样,不同文件的分配压力,就从一个数据表上分散到多个文件上。

 

目前的Oracle数据库,是可以同时支持LMTDMT的。但是,新系统一般都会使用LMTLMT策略下,有存在分配extent大小的问题。

 

每次进行extent分配的策略,有系统自动和统一大小uniform. size两种方法。

 

ü        automatic allocation自动分配大小。对每个分配extent的大小,由系统自动进行大小判定。这种方式的优点是每次的extent大小比较灵活。但是缺点也是很严重,就是引起大量的存储碎片。

ü        uniform. size统一大小。每次分配的extent的大小都是固定的,这样可以很大程度的避免碎片问题。默认uniform. size大小是1M

 

 

3、段segment管理策略

 

最后介绍表空间创建参数中的segment管理策略。segment对应的通常是一个数据库留存对象信息,如数据段、索引段、回滚段。Segment space management对应的是对segment空间管理的策略,目前有automanual两种方式。

 

ü        ASSMauto)方式:ASSM是代表新趋势的技术,10g中对应的shrink space功能,就是以ASSM技术作为基础,有效减低HWM,避免出现过多的空间浪费。在过去需要设计的pctfreepctlist等参数,也使用自动化方式进行管理;

ü        手工(Manual)方式:与自动ASSM相对应。与ASSM不同在于每个segment对象都能拥有独立的存储设置参数;

 

 

segment管理策略上,目前一般都选择ASSM策略。但并不意味着ASSM是万能的,还存在一些局限。

 

 

4、结论

 

表空间创建参数涉及多种方案子句,带有不同的含义和特点。

 

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/17203031/viewspace-697829/,如需转载,请注明出处,否则将追究法律责任。

上一篇: Oracle OMF特性试验
请登录后发表评论 登录
全部评论
求道~

注册时间:2010-11-30

  • 博文量
    545
  • 访问量
    7678332