无法在表空间 TEMP 数据库驱动程序错误中将临时段扩展 128 [关闭]

Posted

技术标签:

【中文标题】无法在表空间 TEMP 数据库驱动程序错误中将临时段扩展 128 [关闭]【英文标题】:unable to extend temp segment by 128 in tablespace TEMP Database driver error [closed] 【发布时间】:2013-01-29 08:16:52 【问题描述】:

我在 oracle 上执行了一些繁重的查询。但是出现了一个错误(无法在表空间 TEMP 数据库驱动程序错误中将临时段扩展 128)

我检查了表空间,但没有找到 TEMP 表空间。下面是我执行的查询。而且我已经增加了 USER 表空间。但仍然面临同样的问题。

从 DBA_DATA_FILES 中选择 *;

/home/oracle/oracle/oradata/ORCL/users01.dbf    4   USERS   32212254720 3932160 AVAILABLE   4   YES 34359721984 4194302 160 32211206144 3932032 ONLINE
/home/oracle/oracle/oradata/ORCL/undotbs01.dbf  3   UNDOTBS1    21474836480 2621440 AVAILABLE   3   YES 34359721984 4194302 640 21473787904 2621312 ONLINE
/home/oracle/oracle/oradata/ORCL/sysaux01.dbf   2   SYSAUX  1377828864  168192  AVAILABLE   2   YES 34359721984 4194302 1280    1376780288  168064  ONLINE
/home/oracle/oracle/oradata/ORCL/system01.dbf   1   SYSTEM  1073741824  131072  AVAILABLE   1   YES 34359721984 4194302 1280    1072693248  130944  SYSTEM
/home/oracle/oracle/oradata/ORCL/CSA_BILL_ITEM01.dbf    5   CSA_BILL_ITEM   32212254720 3932160 AVAILABLE   5   YES 32212254720 3932160 12800   32211206144 3932032 ONLINE
/home/oracle/oracle/oradata/ORCL/CSA_BILL_ITEM_INDEX01.dbf  6   CSA_BILL_ITEM_INDEX 2147483648  262144  AVAILABLE   6   YES 2147483648  262144  3200    2146435072  262016  ONLINE
/home/oracle/oracle/oradata/ORCL/CSA_BILL01.dbf 7   CSA_BILL    2147483648  262144  AVAILABLE   7   YES 2147483648  262144  12800   2146435072  262016  ONLINE
/home/oracle/oracle/oradata/ORCL/CSA_BILL_INDEX01.dbf   8   CSA_BILL_INDEX  536870912   65536   AVAILABLE   8   YES 1073741824  131072  3200    535822336   65408   ONLINE
/home/oracle/oracle/oradata/ORCL/META_DATA01.dbf    9   META_DATA   536870912   65536   AVAILABLE   9   YES 1073741824  131072  3200    535822336   65408   ONLINE
/home/oracle/oracle/oradata/ORCL/META_INDEX01.dbf   10  META_INDEX  268435456   32768   AVAILABLE   10  YES 536870912   65536   640 267386880   32640   ONLINE
/home/oracle/oracle/oradata/ORCL/POWERCENTER01.dbf  11  POWERCENTER 2147483648  262144  AVAILABLE   11  YES 2147483648  262144  4096    2146435072  262016  ONLINE
/home/oracle/oracle/oradata/ORCL/CSA_QOTA01.dbf 12  CSA_QOTA_TBSPACE    536870912   65536   AVAILABLE   12  YES 536870912   65536   4096    535822336   65408   ONLINE
/home/oracle/oracle/oradata/ORCL/CSA_QOTA02.dbf 13  CSA_QOTA_TBSPACE    1610612736  196608  AVAILABLE   13  NO  0   0   0   1609564160  196480  ONLINE
/home/oracle/oracle/oradata/ORCL/CSA_QOTA03.dbf 14  CSA_QOTA_TBSPACE    1073741824  131072  AVAILABLE   14  NO  0   0   0   1072693248  130944  ONLINE

请帮助我解决这个问题。

【问题讨论】:

我推断您将表和索引段保存在不同的表空间中。您可能已经知道这一点,但所谓的性能优势却广受质疑。 我在使用 Oracle OCI8 驱动程序运行查询时遇到此错误,查询返回的结果集很大,但不是通过 Oracle 的 SQL 工具 SQL Developer,它使用瘦客户端。在此处调整临时表的更多详细信息:***.com/questions/25350703/… 【参考方案1】:

临时表空间的管理方式与普通数据表空间不同。您可以通过查询dba_temp_files 来查看操作系统文件。请参阅the documentation 了解如何增加临时表空间文件的大小或添加新文件。

但是,您最好调查一下为什么您的查询使用了如此多的临时空间并看看您是否可以减少它;可能存在一个根本性错误(例如意外的交叉连接),这意味着它使用的温度远远超过应有的温度,并且可能使其运行时间超过应有的时间。查看解释计划以获取有关问题所在的线索。增加TEMP 可能是必要的,但不应在看到此错误后立即自动完成。

如果您有一个查询需要比正常更多的临时查询(而且是一次性的),则另一个选择可能是在操作期间通过alter user 添加一个新的临时表空间assign that to the user,revert完成后,然后删除新的表空间。然后额外的磁盘只占用很短的时间。对于您的情况可能不切实际或不明智,但以防万一。


我应该说真正的临时临时表空间——用create temporary tablespace 定义——是这样管理的,条目在dba_temp_files 中。在 8i 之前,他们有正常的数据文件,并且可能在已升级的数据库中仍然具有该配置,并且没有以新格式重新创建临时表空间。显然,您的情况并非如此,因为您的没有出现在 dba_data_files 中。

【讨论】:

以上是关于无法在表空间 TEMP 数据库驱动程序错误中将临时段扩展 128 [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

ORA-01652: 使用 DBMS_RANDOM.VALUE 时无法在表空间 TEMP 错误中将临时段扩展 128

ORA-01652: 无法在表空间 TEMP 中将临时段扩展 128,但有 500GB 可用

ORA-01652 - 无法在表空间中将临时段扩展 4096 (oracle 10)

Pentaho Spoon 转换抛出:ORA-01652:无法在表空间 TEMP 中将临时段扩展 128

如何在oracle中缩小临时表空间?ORA-01652无法在表空间中扩展temp

ORA-01652: 无法在表空间 TEMP 中将临时段扩展 128 - 这是可恢复的吗?