1. 程式人生 > >收縮Oracle表空間物理文件

收縮Oracle表空間物理文件

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表空間物理文件