表空间及 dbf 文件占用空间整理

一、表空间占用物理存储空间查询

select (tablespace_name) “表空间名”,    

sum(total_size) “总空间 /M”,    

sum(total_free) “剩余空间 /M”,    

sum(max_continue) “最大连续空间 /M”,    

round(sum(total_free) / sum(total_size) * 100) “剩余百分比 /ratio”   

from ((select tablespace_name,    

(0) total_size,    

round(sum(bytes) / 1024 / 1024, 2) total_free,    

round(max(bytes) / 1024 / 1024, 2) max_continue    

from dba_free_space    

group by tablespace_name) union all   

(select tablespace_name, round(sum(bytes) / 1024 / 1024, 2), 0, 0    

from dba_data_files    

group by tablespace_name))    

 group by tablespace_name    

 order by 5 asc;

二、调整数据库文件 DBF 大小(而非修改文件上限大小)

alter database datafile ‘D:\ORADATA\ECC_MES.DBF’ resize 19000M;

扩展:dbf 文件大小上限为 32G,当数据量积累,dbf 文件大小达到上限时,需要为同一个表空间指定多个 dbf 文件

ALTER TABLESPACE mestar_data ADD DATAFILE ‘/u01/app/oracle/oradata/Tracedb/mestar_data1.dbf’ SIZE 1024M AUTOEXTEND ON NEXT 200M MAXSIZE 30G;

  

修改指定表空间文件大小

alter database datafile ‘/u01/app/oracle/oradata/Tracedb/mestar_data.dbf’ autoextend on maxsize 30G;