目的:收缩数据文件,节省磁盘空间
环境:oracle11g rac
方法:使用resize命令即可
alter database datafile '/oradata2/mesdb/SYSTRAVELIDX119.ora' resize 1024M;
重点:如何确认可以收缩的文件大小是根据HWM设置的,可以使用下列语句查询
查询数据文件使用率
select /*+ ordered use_hash(a,b,c) */ a.file_id,a.file_name,a.filesize, b.freesize, (a.filesize-b.freesize) usedsize, c.hwmsize, c.hwmsize - (a.filesize-b.freesize) unsedsize_belowhwm, a.filesize - c.hwmsize canshrinksize from ( select file_id,file_name,round(bytes/1024/1024) filesize from dba_data_files ) a, ( select file_id,round(sum(dfs.bytes)/1024/1024) freesize from dba_free_space dfs group by file_id ) b, ( select file_id,round(max(block_id)*8/1024) HWMsize from dba_extents group by file_id) c where a.file_id = b.file_id and a.file_id = c.file_id order by unsedsize_belowhwm desc