我在oracle11G下有一個磁區表,其中占空間較大的是兩個blob欄位。
按月進行磁區,通常保留兩個月的磁區,
最近業務量較大,表所在的表空間不斷申請新的資料檔案,導致asm盤組空間不足,多次報警。
現在的處理方法是洗掉上個月的磁區
查看表空間dba_free_space已經多出來2T。
但是資料檔案如何洗掉呢?asm盤組還是只剩下300多G,有些隱患。
uj5u.com熱心網友回復:
看一下shrink命令uj5u.com熱心網友回復:
參考一下https://www.linuxidc.com/Linux/2017-02/141115.htmuj5u.com熱心網友回復:
我這個問題還不是高水位線的問題,整個磁區都被洗掉了,也不存在高水位線的問題,
只是磁區洗掉后釋放出來大量的空間,由于雙12業務量大,所以占用空間也大,
后續是不會用到這么多空間的,
目前asm盤組只剩了300多G,我想把磁區表所在的表空間中的部分資料檔案洗掉,把空間回傳給asm盤組。
但alter tablespace xxxxx drop datafile 'xxxxxxxxxx'
報錯,說資料檔案還被占用,查看segments,資料檔案中也確實被分配了。
但是里面應該都是空的。
如何解決這個問題呢?
uj5u.com熱心網友回復:
資料檔案offline 試試
uj5u.com熱心網友回復:
應該先 truncate 磁區 再刪 好像是馬上釋放資源。你這些資料檔案是否還有 其它schema的物件 ,如索引。
uj5u.com熱心網友回復:
每個磁區使用單獨的表空間的話,應該可以直接 drop 表空間。下次添加磁區之前, 先建一個表空間,單獨給這個磁區用。添加磁區的時候指定表空間。
uj5u.com熱心網友回復:
兩個方法1、匯出資料,收縮表資料檔案,再匯入資料。
2、新建一個表空間,再 move 到新表空間,再洗掉原表空間。
uj5u.com熱心網友回復:
實際上你洗掉磁區,對應的資料檔案會縮小的轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/53994.html
標籤:基礎和管理
