我只有2%的免费表空间UNDOTBS1。它由2个数据文件组成。
当我发射
alter database datafile '+DATADF/dbname/datafile/undotbs1.555.23454732' resize 32G;
我得到了:
ORA-01144:文件大小(4194304块)超过最大4194303块
如何扩展这个表空间?
发布于 2020-02-24 11:46:49
忘记文件系统挂载选项和32000M
(而不是32000K
)。
第一个与此无关。
32000M
也不是最大的大小,这样的文件大小来自于对物理数据库限制的缺乏理解:物理数据库限制。
小文件表空间数据文件可以包含2^22-1 * database block size
字节。对于默认的8192字节块大小,这意味着4194303 * 8192 = 34359730176
字节,而32G = 34359738368
字节。
因此,这应该适用于小文件表空间中的标准8192字节块大小:
alter database datafile '+DATADF/dbname/datafile/undotbs1.555.23454732' resize 34359730176;
如果达到这个限制,可以将下一个数据文件添加到表空间中,例如:
alter tablespace undotbs1 add datafile `+DATADF` size 100M autoextend on next 100m maxsize unlimited;
其中无限也意味着2^22-1 * database block size
限制。
发布于 2020-02-24 06:49:17
你有两个选择。
您当前对小文件的限制是2G。正如您可以看到的,限制是4194303个块,它是4194303 x 512字节块大小=2,147,483,136个字节= 2G。
备选案文1:
使用-largefiles选项安装您的文件系统,这将允许您创建32G及更高版本。
备选案文2:
您只能添加2G数据文件。
alter tablespace UNDOTBS1 add datafile 'path/filename' size 2G;
-largefiles选项已经默认了很多年了,所以您的unix管理员应该不会有问题来更改这个选项。
发布于 2020-02-24 11:21:52
我认为问题在于,在Oracle的内部空间计算中,由于一些奇怪的原因,"32G“在这里不起作用。
“32000 K”将非常好地工作,尽管它可能比你想要的要小一点。
或者,只需添加第三个大小的数据文件,您喜欢。
https://dba.stackexchange.com/questions/260402
复制相似问题