首页 » ORACLE 9i-23c » ORA-01144: File size (4194304 blocks) exceeds maximum of 4194303 blocks

ORA-01144: File size (4194304 blocks) exceeds maximum of 4194303 blocks

有时扩展数据文件遇到这个错误

SQL> alter database datafile 5 resize 32768M;
alter database datafile 5 resize 32768M
*
ERROR at line 1:
ORA-01144: File size (4194304 blocks) exceeds maximum of 4194303 blocks

网上收集了一下
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

其实那个错误是因为超出了小表空间单个数据文件的最大大小,单个文件最大大小是 “Operating system dependent. Limited by maximum operating system file size; typically 2^22 or 4 MB blocks”。

其实是有原因 的

physical rowid就是我们常说的rowid,physical rowid由80B构成,其中32B用于表示data_object_id,10B用于表示rfile,22B用于表示block_number,16位用于表示row_number
small表空间中使用10B用于表示rfile,22B用于表示block_number,所以一个small表空间中一个数据文件最大大小为db_block_size*(4M-1)。big表空间中使用32B表示block_number,big表空间只有一个数据文件。

打赏

目前这篇文章有2条评论(Rss)评论关闭。

  1. Manual Ziolkowski | #1
    2011-12-21 at 07:05

    This article is simply awesome! I think you are right on with your viewpoints and content. I like your style. I hope to return and read more of your articles. I’m sure they are unique.

  2. Welcome | #2
    2011-11-11 at 11:45

    That’s not just the best asnwer. It’s the bestest answer!