首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Oracle Tablespaces maxsize不是真正的无限大小

Oracle Tablespaces maxsize不是真正的无限大小
EN

Stack Overflow用户
提问于 2015-05-21 04:16:52
回答 2查看 21.3K关注 0票数 6

我最近需要将.dmp导入到我创建的新用户中。我还使用以下命令为用户创建了一个新的表空间:

代码语言:javascript
复制
create tablespace my_tablespace
 datafile 'C:\My\Oracle\Install\DataFile01.dbf' size 10M
 autoextend on
 next 512K
 maxsize unlimited;

当导入正在运行时,我得到一个错误:

代码语言:javascript
复制
ORA-01652 Unable to extend my_tablespace segment by in tablespace

当我检查dba_data_files表中的数据文件时,我观察到maxsize大约是34gb。因为我知道数据库的一般大小,所以在向表空间添加多个数据文件后,我能够顺利地导入.dmp。

当我添加的第一个数据文件被设置为自动增长到无限大小时,为什么我需要向表空间添加多个数据文件?为什么最大尺寸是34gb而不是无限大?有34 of的硬顶吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-05-21 11:09:43

正如您已经发现的,正如Alex Poole所指出的,单个数据文件的大小是有限制的。小文件限制为128 to,大文件限制为128 to,具体取决于您的数据块大小。(但您不希望仅仅为了增加这些限制而更改块大小。)只有当您想要进一步限制大小时,create tablespace命令中的大小限制才会存在。

这可能有点令人困惑。你可能并不关心管理文件,而只是想让它“正常工作”。管理数据库存储总是一件烦人的事,但以下是您可以做的一些事情:

将表空间分区到最小。在极少数情况下,将数据分区为许多小的表空间是有帮助的。如果你正在使用objects.

  • Get (如果这是一个本地实例,我不推荐这么做),那么在添加数据文件时,几乎没有理由不“疯狂”地添加数据文件。即使你不使用ASM,你也应该疯狂一点。只要您将原始大小设置为低,您就不会接近MAX_FILES限制,并且您不会处理像UNDO和TEMP这样的特殊表空间,添加更多文件不会有任何损失。不要过于担心分配的潜在空间会超过硬盘所包含的空间。这让一些DBA抓狂,但您必须权衡耗尽操作系统空间的可能性与耗尽一百个文件空间的可能性。(在任何一种情况下,您的应用程序都将crash.)

  • Set RESUMABLE_TIMEOUT 参数。然后SQL语句将被挂起,可能会生成预警,将在DBA_RESUMABLE中列出,并将耐心等待更多空间。这在数据仓库中非常有用。

为什么叫“无限”?

我猜关键字UNLIMITED是一个历史性的错误。从at least version 7开始,甲骨文就有相同的文件大小限制,甚至可能更早。Oracle7是在1992年发布的,当时1GB hard drive cost $1995。也许当时每个操作系统的文件大小限制都比这个小。也许当时认为128 as是“无限制的”是合理的。

票数 8
EN

Stack Overflow用户

发布于 2020-04-19 01:56:39

无限的maxsize对于这个操作是不够的,而且你的可恢复超时必须足够,你可以设置为毫秒,如果你想要无限的话;

代码语言:javascript
复制
alter system set resumable_timeout=0;
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30359569

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档