收縮Oracle表空間物理文件
阿新 • • 發佈:2018-05-11
Oracle在Oracle中,經常有這樣的情況,由於誤操作,使某個表空間過大。delete 方法不會清除高水位線,用了truncate之後,雖然高水位線已經清除,但是擴充的表空間並沒有縮小,所以應該用下面的方法進行縮小:
1.查找表空間對應的數據文件id,以USERS表空間為例:
select FILE_ID from dba_data_files where tablespace_name =‘USERS‘
2.允許表空間進行收縮(對表空間進行融合):
alter tablespace users coalesce;
3.查詢表空間中表對應的大小,好確定對哪張表進行操作:
select * from dba_segments where tablespace_name=‘USERS‘ and segment_type=‘TABLE‘
4.允許表進行行移動(某些表不能進行truncate,只能delete)
alter table test row movement;
5.對表進行高水位線回收:
alter table test shrink space;
6.最後,對第一步查出的數據文件id進行壓縮(resize),大小一定要大於已用大小:
alter database datafile 4 resize 2000M;
經過上述操作,擴大的表空間就可以收縮回正常尺寸了,親測可用!
收縮Oracle表空間物理文件