无法在表空间 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