在表空间有足够free space的情况下出现ORA-1652
生活随笔
收集整理的這篇文章主要介紹了
在表空间有足够free space的情况下出现ORA-1652
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
版本10.2.0.5之前存在這樣的問題,當(dāng)打開recyclebin回收站功能的情況下, Tablespace 上有足夠的Free Space空閑空間,但是因為這些Free Space屬于回收站中的對象,在并行INSERT數(shù)據(jù) 或者并行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 確認(rèn)在版本 11.2中修復(fù)。 ? 該BUG的原理是當(dāng)CTAS with nologging是使用直接路徑加載direct path load,Oracle一開始在針對的永久表空間上創(chuàng)建一個臨時段繼以加載數(shù)據(jù)。一旦這些操作完成,則臨時段會被重命名并成為表的一部分。 當(dāng)在該永久表空間上drop一張表,當(dāng)打開回收站的情況下 該表被置入回收站recyclebin中,該段之前分配的空間由于本BUG的原因造成CTAS + PARALLEL + NOLOGGING時不計算為free space。 ?這導(dǎo)致了ORA-1652錯誤的觸發(fā)。 ? 目前針對該BUG?6977045 的off patch有10.2.0.4 、11.1.0.7和11.1.0.7.9 的版本: ? ? ? 如果不想打補(bǔ)丁, 那么Workaround 可以是: ? 1. 關(guān)閉 回收站功能 recyclebin=off 2. 在CTAS PARALLEL NOLOGGING 前 purge recyclebin清理回收站
總結(jié)
以上是生活随笔為你收集整理的在表空间有足够free space的情况下出现ORA-1652的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Java 并发基础
- 下一篇: Servlet - 会话跟踪