ORACLE数据文件(autoextend on)上限

来源:互联网 发布:怎么禁止电脑休眠mac 编辑:程序博客网 时间:2024/04/28 07:01

1、smallfile

      Oracle的限制,如果要建普通的datafile,最大的大小就是 (2^22-1)*32K = 128G (注:Oracle最大支持block为32k)。存在这个限制是因为Oracle的内部ROWID使用22位2进制数来存储不同的block号,所以22位最多代表(2^22-1)个block。

      (2^22-1)*8k=32 
2、bigfile

     为了解决数据文件大小的问题,Oracle10g专门引入了bigfile tablespace,在bigfile tablespace里Oracle使用32位来存储block号,即比之前增大了1024倍,其最大文件大小从128G增加到128T。

     当然如果使用bigfile tablespace,则需要注意OS的文件大小限制。

     例如在windows下,单个文件最大限制如下:
    FAT12           8M  
    FAT16           2G    
    FAT32           4G  
    NTFS            64GB  
    NTFS5.0         2TB  
    下面介绍一下Oracle 10g的bigfile tablespace创建语法,其实很简单:

SQL> create tablespace big_tbs datafile 'D:\ORACLE\PRODUCT\10.2.0\ORADATA\WANGXIAOQI\DATAFILE\BIG_TBS.DBF' size 20G  autoextend on next 10G maxsize 100G; 


Tablespace created.
    至于对其他的一些操作的影响比较复杂,暂时不做研究,有时间了专门了解一下。可以了解的基本特性是:会默认得使用LMT和ASSM来对tablespace进行管理。
    需要注意的是,对于bigfile tablespace来说,只允许创建一个datafile,而不允许再添加datafile。

SQL> alter tablespace big_tbs add datafile '/opt/oracle/product/10.2.0/oradata/wangxiaoqi/big_tbs2.dbf' size 20G 2 autoextend on next 10M maxsize 100M;alter tablespace big_tbs add datafile '/opt/oracle/product/10.2.0/oradata/devMISowb/big_tbs2.dbf' size 20M*ERROR at line 1:ORA-32771: cannot add file to bigfile tablespace