報臨時表空間不足錯誤:ora-01652
在進行insert操作的時候,遇到報錯如下:提示臨時表空間不足問題。
錯誤信息如下:
查看臨時表空間的擴展,已經自動擴展到32G。
回顧一下臨時表空間的使用場合:
對於臨時表空間的作用,排序操作可能是會使用到臨時表空間的。當sort area內存不足會用到臨時表空間。對於排序的情況,使用到排序的操作有: create index,order by ,group by ,收集統計信息時,都可能會用臨時表空間。排序操作首先會在sort area 內存中進行排序,一旦sort area(內存排序區)內存不足,則會使用到臨時表空間 sort in disk(磁盤排序,即臨時表空間)。
而這次報錯的可能性,有可能是插入時需要同時創建索引,於是需要大量使用臨時表空間。並且本次插入,為了增加速度,並行啟動了多個插入任務,於是出現了臨時表空間不足的情況。
解決:
遭遇錯誤後,停止了所有的數據插入操作。計劃進行了如下調整:
1、擴展臨時表空間大小;
2、減少並行任務數量;
3、刪除索引,待數據全部插入後,重新創建索引;
4、任務完成後,回收臨時表空間;
實際中先嘗試了前兩個步驟,問題成功規避:
1、擴展臨時表空間至60G。
2、然後減少並發量有4個降到2個,采取執行插入動作,逐一執行。
結果:最後大數據量數據被成功插入。