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\