oracle表空间满了,应该怎么扩大表空间?

栏目:eas cloud知识作者:金蝶来源:金蝶云社区发布:2024-09-22浏览:1

oracle表空间满了,应该怎么扩大表空间?

确定是否是表空间满,可以使用以下语句:


sqlplus / as sysdba
set linesize 200
column tablespace_name format a29
column AutoExpandStatus format a20
column MaxGBytes format 999999999
column pct_warn format a5
--上面语句是在sqlplus下执行,如果在EAS查询分析器上执行,可以执行下面的语句


select max1.tablespace_name, Total_GB,GB_used ,GB_free,trunc(pct) "UsedPercent%",trunc(maxbytes) as " MaxGBytes" ,pct_warn ,round(100*GB_used/maxbytes,2) as "growupPercent",
 (case   when ((GB_used/maxbytes)>0.9) then 'Almost Full'      else 'Will Auto Increase' end ) AutoExpandStatus
from (select T.TABLESPACE_NAME as  tablespace_name,
sum(decode(d.MAXBYTES,0,d.bytes,d.maxbytes)/1024/1024/1024) as maxbytes
 from dba_tablespaces t, dba_data_files d where t.TABLESPACE_NAME=d.TABLESPACE_NAME group by T.TABLESPACE_NAME) max1,
 (select  tbs.tablespace_name,
        ROUND((tot.bytes/1024/1024/1024),1) Total_GB,
        ROUND(trunc(tot.bytes/1024/1024/1024-sum(nvl(fre.bytes,0))/1024/1024/1024),1) GB_used,
        ROUND(trunc(sum(nvl(fre.bytes,0))/1024/1024/1024),1) GB_free,
        (1-sum(nvl(fre.bytes,0))/tot.bytes)*100 pct,
        decode(
            greatest((1-sum(nvl(fre.bytes,0))/tot.bytes)*100, 90),
            90, '', '*'
        ) pct_warn
from    dba_free_space fre,
        (select tablespace_name, sum(bytes) bytes
        from    dba_data_files
        group by tablespace_name) tot,
        dba_tablespaces tbs
where   tot.tablespace_name    = tbs.tablespace_name
and     fre.tablespace_name(+) = tbs.tablespace_name
group by tbs.tablespace_name, tot.bytes/1024/1024/1024, tot.bytes) avail1
where avail1.tablespace_name=max1.tablespace_name  ;

--注意上面查询语句是在sqlplus下执行,最后的tablespace_name 后面要加上 ; 这个标点符号

如果在EAS查询分析器上执行,tablespace_name 后面要去掉  ; 这个标点符号


如果查询的输出结果只是PC字段是*,但最后一个字段TABLESPACEINCRSTAT没出现“Almost Full”字样,只要操作系统有空间,则会自动扩展,表示表空间没满。

如果出现Almost Full,表示对应的表空间很快满了,要加大对应的表空间。


在确定表空间满后,需要把对应的表空间名记下来,再查询数据文件所在路径:

select TABLESPACE_NAME, FILE_NAME from dba_data_files order by 1,2



非RAC,路径会类似这样:

RAC,路径会类似这样:

FILE_NAME列显示了路径,就可以通过下面语句扩大表空间了:


非RAC增加文件方法:

alter tablespace 表空间名  add datafile '路径/新数据库文件名.dbf'size 1g autoextend on next 1g maxsize 30g;

注意:新增加的数据库文件名必须和当前的名字不同。

例如:



RAC增加文件方法:

alter tablespace 表空间名 add datafile '+磁盘组名'size 1g autoextend on next 1g maxsize 30g;

例如:








oracle表空间满了,应该怎么扩大表空间?

确定是否是表空间满,可以使用以下语句:sqlplus / as sysdbaset linesize 200column tablespace_name format a29column AutoExpa...
点击下载文档
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息