2016-05-16 40 views
0

我有一個名爲OBFEED_STMT_DTL的表,它有14GB的數據。現在我使用delete sql刪除了該表中大約50%的數據,因此我預計它的大小將變爲7GB。數據被刪除了,如我所料,但表格的大小沒有改變。所以我想在這張桌子上運行縮小的空間。我使用sqls來做到這一點。Shrinkspace在oracle中使用ora-30036失敗

alter table OBFEED_STMT_DTL enable row movement; 
alter table OBFEED_STMT_DTL shrink space; 
alter table OBFEED_STMT_DTL disable row movement; 

花了一個多小時,在我下面的錯誤消息的結尾:

alter table OBFEED_STMT_DTL shrink space 
* 
ERROR at line 1: 
ORA-30036: unable to extend segment by 8 in undo tablespace 'UNDOTBS1' 

能否請你幫我,我怎麼能繼續來解決這個問題?

感謝, Venkat

+0

也許你需要增加撤消表空間的大小或允許它自動擴展一點。 – Lunc

回答

-1

如果你得到這個錯誤它很可能是:

(1)你的undo表空間被設置爲自動擴

(2)它所在的文件系統已滿。

你可以明白我的意思是:

http://international-dba.blogspot.co.uk/2012/09/ora-30036.html

編輯

爲 「在Oracle回收空間」 的方式

https://asktom.oracle.com/pls/asktom/f?p=100:11:0::::P11_QUESTION_ID:54178027703899

+0

我的撤消表空間不是自動擴展的。我的文件系統充滿的可能性很小。我可否知道我是否有其他人也可以這樣做?我也可以知道我可以預計縮減7GB空間多少時間? –