日期:2014-05-16  浏览次数:20577 次

Oracle表空间不够使用及解决方法
Oracle表空间不够使用及解决方法

1.查询表空间使用方法:

select b.file_id,b.tablespace_name,b.file_name,b.bytes,(b.bytes-sum(nvl(a.bytes,0))),sum(nvl(a.bytes,0)),sum(nvl(a.bytes,0))/(b.bytes)*100 from dba_free_space a,dba_data_files b where a.file_id=b.file_id group by b.tablespace_name,b.file_name,b.file_id,b.bytes order by b.tablespace_name;

select fs.tablespace_name,max(round((1 - freespace / totalspace) * 100, 2)) ratio ,totalspace
from (select tablespace_name, round(sum(bytes) / 1024 / 1024) totalspace
from dba_data_files
group by tablespace_name) df,
(select tablespace_name, round(sum(bytes) / 1024 / 1024) freespace
from dba_free_space
group by tablespace_name) fs
where df.tablespace_name = fs.tablespace_name(+)
and fs.tablespace_name not in ('UNDOTBS2','UNDOTBS1','SYSAUX')
group by fs.tablespace_name,totalspace order by 2 desc;
 
2.增加表空间:
查看数据文件存放路径:select file_name from dba_data_files;

解决方法1:增大数据文件

--增加对应的表空间里面的某个数据文件的大小为***M

alter database datafile '全路径的数据文件名称' resize ***M;

解决方法2:增加数据文件

alter tablespace 表空间名称 add datafile '全路径的数据文件名称' size ***M;

--新增一个数据文件,全路径的数据文件名称为该新增数据文件的全路径文件名称。大小为***M,数值具体设置。

PS:Oracle表空间一般让free百分比保持在10%以上,MDMC里面目前的比例是25%,如果低于就增加datafile或者resieze datafile,一般数据文件大小不要超过2G.