oracle表空间一般建多大,Oracle表空间创建参数解析

表空间Tablespace是Oracle数据库逻辑结构中的一个层次。创建管理表空间和对应的数据文件,是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_NAMEEXTENT_MANAGEMENT ALLOCATION_TYPE SEGMENT_SPACE_MANAGEMENT

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

(篇幅原因,有省略……)

TRADWAYLOCALUNIFORMMANUAL

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子句:文件大小上限;

2、extent分区分配方案

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

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

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

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

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

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

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

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

3、段segment管理策略

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

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

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

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

4、结论

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

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值