在一个裸设备上扩展一个表空间的时候遭遇了这个错误,想知道具体原因是什么。sqlgt; alter database datafile 5 resize 33g;alt
ora-01144: file size (string blocks) exceeds maximum of string blocks
今天公司的oracle服务器突然停止工作
在一个裸设备上扩展一个表空间的时候遭遇了这个错误,想知道具体原因是什么。
sql> alter database datafile 5 resize 33g;
alter database datafile 5 resize 33g
*
error at line 1:
ora-01144: file size (4325376 blocks) exceeds maximum of 4194303 blocks
aix 64位的平台
下面是oracle err messages:
ora-01144: file size (string blocks) exceeds maximum of string blocks
-----------------------------------------
在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即可,解决方法是用多个数据文件,不是把单个数据文件设得很大.
-----------------------------------------
今天在solaris sparc10上安装单节点oracle10g,dbca报ora-01144,说数据文件大于限制,其实之前也奇怪为什么一个数据文件要150g。 后来发现原来是自己的理解错误,要求中并没有说只能用一个数据文件,但是metalink查到相关信息如下,以备参考:
fix:
fix 1:
specify a smaller file size.
the maximum file size is
db_block_size * 4194303
for example, if db_block_size is 2kb then maximum file size is limited
to 2k*4194303, 8gb-2k.
fix 2:
change db_block_size. this can only be done by recreating of
database.
db_block_size maximum data file size
------------- ----------------------
2kb 8gb-2kb
4kb 16gb-4kb
8kb 32gb-8kb
16kb 64gb-16kb
32kb 128gb-32kb
可见db_block_size对 maximum data file size还是起决定作用的
还有就是不能轻易的勾bigfile tablespace 这东西只允许表空间中存在一个数据文件~差点儿犯错误~ 呵呵~