我最近需要将.dmp导入到我创建的新用户中。我还使用以下命令为用户创建了一个新的表空间:
create tablespace my_tablespace
datafile 'C:\My\Oracle\Install\DataFile01.dbf' size 10M
autoextend on
next 512K
maxsize unlimited;当导入正在运行时,我得到一个错误:
ORA-01652 Unable to extend my_tablespace segment by in tablespace当我检查dba_data_files表中的数据文件时,我观察到maxsize大约是34gb。因为我知道数据库的一般大小,所以在向表空间添加多个数据文件后,我能够顺利地导入.dmp。
当我添加的第一个数据文件被设置为自动增长到无限大小时,为什么我需要向表空间添加多个数据文件?为什么最大尺寸是34gb而不是无限大?有34 of的硬顶吗?
发布于 2015-05-21 11:09:43
正如您已经发现的,正如Alex Poole所指出的,单个数据文件的大小是有限制的。小文件限制为128 to,大文件限制为128 to,具体取决于您的数据块大小。(但您不希望仅仅为了增加这些限制而更改块大小。)只有当您想要进一步限制大小时,create tablespace命令中的大小限制才会存在。
这可能有点令人困惑。你可能并不关心管理文件,而只是想让它“正常工作”。管理数据库存储总是一件烦人的事,但以下是您可以做的一些事情:
将表空间分区到最小。在极少数情况下,将数据分区为许多小的表空间是有帮助的。如果你正在使用objects.
MAX_FILES限制,并且您不会处理像UNDO和TEMP这样的特殊表空间,添加更多文件不会有任何损失。不要过于担心分配的潜在空间会超过硬盘所包含的空间。这让一些DBA抓狂,但您必须权衡耗尽操作系统空间的可能性与耗尽一百个文件空间的可能性。(在任何一种情况下,您的应用程序都将crash.)
RESUMABLE_TIMEOUT 参数。然后SQL语句将被挂起,可能会生成预警,将在DBA_RESUMABLE中列出,并将耐心等待更多空间。这在数据仓库中非常有用。为什么叫“无限”?
我猜关键字UNLIMITED是一个历史性的错误。从at least version 7开始,甲骨文就有相同的文件大小限制,甚至可能更早。Oracle7是在1992年发布的,当时1GB hard drive cost $1995。也许当时每个操作系统的文件大小限制都比这个小。也许当时认为128 as是“无限制的”是合理的。
发布于 2020-04-19 01:56:39
无限的maxsize对于这个操作是不够的,而且你的可恢复超时必须足够,你可以设置为毫秒,如果你想要无限的话;
alter system set resumable_timeout=0;https://stackoverflow.com/questions/30359569
复制相似问题