我在表空间 UNDOTBS1 上只有 2% 的空闲空间。它由 2 个数据文件组成。
当我启动
alter database datafile '+DATADF/dbname/datafile/undotbs1.555.23454732' resize 32G;
我有 :
ORA-01144: 文件大小 (4194304 块) 超过 4194303 块的最大值
如何扩展这个表空间?
我在表空间 UNDOTBS1 上只有 2% 的空闲空间。它由 2 个数据文件组成。
当我启动
alter database datafile '+DATADF/dbname/datafile/undotbs1.555.23454732' resize 32G;
我有 :
ORA-01144: 文件大小 (4194304 块) 超过 4194303 块的最大值
如何扩展这个表空间?
你有两个选择。
您当前对小文件的限制是 2G。如您所见,限制为 4194303 个块,即 4194303 x 512 字节块大小 = 2,147,483,136 字节 = 2G。
使用 -largefiles 选项挂载您的文件系统,这将允许您创建 32G 或更高。
您只能添加 2G 数据文件。
-largefiles 选项多年来一直是默认选项,因此您的 unix 管理员更改此选项应该没有问题。
我认为问题在于,由于 Oracle 内部空间计算中的某些奇怪原因,“ 32G ”在这里不起作用。
“ 32000K ” 可以很好地工作,尽管它可能比你想要 的小一点。
或者,只需添加您喜欢的任何大小的第三个数据文件。
忘记文件系统挂载选项和
32000M
(不是32000K
)。第一个与此无关。
32000M
也不是最大大小,这样的文件大小来自对物理数据库限制的理解不足:Physical Database Limits小文件表空间数据文件可以包含
2^22-1 * database block size
字节。使用默认的 8192 字节块大小,这意味着4194303 * 8192 = 34359730176
字节,而32G = 34359738368
字节。所以这应该适用于小文件表空间中的标准 8192 字节块大小:
如果达到该限制,则可以将下一个数据文件添加到表空间,例如:
无限也意味着
2^22-1 * database block size
限制。