欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程资源 > 编程问答 >内容正文

编程问答

在表空间有足够free space的情况下出现ORA-1652

发布时间:2025/3/17 编程问答 37 豆豆
生活随笔 收集整理的这篇文章主要介绍了 在表空间有足够free space的情况下出现ORA-1652 小编觉得挺不错的,现在分享给大家,帮大家做个参考.
版本10.2.0.5之前存在这样的问题,当打开recyclebin回收站功能的情况下, Tablespace 上有足够的Free Space空闲空间,但是因为这些Free Space属于回收站中的对象,在并行INSERT数据 或者并行CTAS的情况下 PARALLEL启用的情况下可能遇到ORA-1652错误:     oracle@localhost:~$ oerr ora 1652 01652, 00000, "unable to extend temp segment by %s in tablespace %s" // *Cause: Failed to allocate an extent of the required number of blocks for // a temporary segment in the tablespace indicated. // *Action: Use ALTER TABLESPACE ADD DATAFILE statement to add one or more // files to the tablespace indicated.例如ORA-01652: unable to extend temp segment by 320 in tablespace MAC_TS   这一般是由于BUG 6977045 - ORA-1652 LMT SPACE NOT REALLOCATED CORRECTLY AFTER DROP TABLE, 该BUG 确认在版本 11.2中修复。   该BUG的原理是当CTAS with nologging是使用直接路径加载direct path load,Oracle一开始在针对的永久表空间上创建一个临时段继以加载数据。一旦这些操作完成,则临时段会被重命名并成为表的一部分。 当在该永久表空间上drop一张表,当打开回收站的情况下 该表被置入回收站recyclebin中,该段之前分配的空间由于本BUG的原因造成CTAS + PARALLEL + NOLOGGING时不计算为free space。  这导致了ORA-1652错误的触发。   目前针对该BUG 6977045 的off patch有10.2.0.4 、11.1.0.7和11.1.0.7.9 的版本:  

    如果不想打补丁, 那么Workaround 可以是:   1. 关闭 回收站功能 recyclebin=off 2. 在CTAS PARALLEL NOLOGGING 前 purge recyclebin清理回收站

总结

以上是生活随笔为你收集整理的在表空间有足够free space的情况下出现ORA-1652的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。