Oracle數據文件占用空間釋放resize


Oracle數據文件占用空間釋放resize
      
                                           
當Oracle數據庫的數據占用空間較大,而其中存儲的數據並未占據如此大的空間時,原因可能為用戶刪除了一些數據,但是數據文件大小並不會自動縮小。此時如果想要縮小數據文件的大小,可以采用如下的方式。
一、使用如下語句,查詢可以釋放空間的數據文件:
select a.file#,
a.name,
a.bytes / 1024 / 1024 CurrentMB,
ceil(HWM * a.block_size) / 1024 / 1024 ResizeTo,
(a.bytes - HWM * a.block_size) / 1024 / 1024 ReleaseMB,
'alter database datafile ''' || a.name || ''' resize ' ||
ceil(HWM * a.block_size) / 1024 / 1024 || 'M;' ResizeCmd
from v$datafile a,
(SELECT file_id, MAX(block_id + blocks - 1) HWM
FROM DBA_EXTENTS
GROUP BY file_id) b
where a.file# = b.file_id(+)
And (a.bytes - HWM * a.block_size) >0
and rownum < 10
 
查看其中屬於system表空間的數據文件,進行resize操作即可。
二、找出需要resize的數據文件resize語句,並執行
執行報錯,原因為重置數據文件大小需要設置為整數。
 
調整resize尺寸為16GB,16384MB;

三、查看釋放后的磁盤空間
resize成功,system文件大小縮減為16GB,root磁盤剩余空間大大增加,增加到了19.6GB,使用率降低到了78%。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM