在Oracle 10G及以上中,表空间有bigfile tablespace和smallfile tablespace的区别:
bigfile tablespace是Oracle10g的新特性。Bigfile tablespaces包含1个最大4G个blocks 的datafile。因此,使用8KBdata blocks 的bigfile tablespace 最大可以达到32TB。
Bigfile tablespaces 常用于非常大的DB。 如果很大的DB有成千的 read/write datafiles, 那么checkpoints之类的操作将非常费时。如果用一个很大的datafile,减少datafiles的数量,将会提高效率。
创建时使用BIGFILE关键字如下:
CREATE BIGFILE TABLESPACE BIG_DEMO
DATAFILE '/ORADATA/PROD/BIG_DEMO.DBF' SIZE 25G;
Smallfile tablespace是原Oracle tablespace datafile 选项的新名字。 smallfile tablespace中,你可以包含多个datafiles。每个datafile 有最多4M个data blocks。因此, 使用8KB data blocks的smallfile tablespace 中的datafiles 最大32GB。smallfile tablespace最多有1,023 个datafiles。SYSTEM和SYSAUX tablespaces总是smallfile tablespaces。
ORA-01144即表示你的单个数据文件超出了oracle的限制:
如:ORA-01144: File size (4194304 blocks) exceeds maximum of 4194303 blocks
表示你的表空间是Smallfile tablespace,单个数据文件最大只可以有2^22=4194303个blocks,换成KBytes时即乘上你数据库的block_size即可,解决方法是用多个数据文件,不是把单个数据文件设得很大.
作者:george.ma
blog:http://blog.chinaunix.net/u/12521/
阅读(2647) | 评论(0) | 转发(0) |