Oracle查看表空间使用率及爆满解决方案(ORA-01653无法扩展表空间)

当收到ORA-01653错误时,表示表空间不足。解决方法包括查看表空间使用率,检查大表并考虑截断,查看数据文件路径及增加新文件。可以使用SQL查询来监控和管理表空间,如TRUNCATETABLE用于释放空间,ALTERTABLESPACE添加数据文件。
摘要由CSDN通过智能技术生成

1、问题:数据库执行语句时,页面提示ORA-01653无法扩展表空间

2、原因:表空间过小或者有部门表占用了大量的空间, 造成表空间不足。

3、解决办法

        3.1查看表空间使用率(包含临时表空间),根据提示检查对应表空间的使用率

--查看表空间使用率(包含临时表空间)
select * from (
Select a.tablespace_name,
(a.bytes- b.bytes) "表空间使用大小(BYTE)",
a.bytes/(1024*1024*1024) "表空间大小(GB)",
b.bytes/(1024*1024*1024) "表空间剩余大小(GB)",
(a.bytes- b.bytes)/(1024*1024*1024) "表空间使用大小(GB)",
to_char((1 - b.bytes/a.bytes)*100,'99.99999') || '%' "使用率"
from (select tablespace_name,
sum(bytes) bytes
from dba_data_files
group by tablespace_name) a,
(select tablespace_name,
sum(bytes) bytes
from dba_free_space
group by tablespace_name) b
where a.tablespace_name = b.tablespace_name
union all
select c.tablespace_name,
d.bytes_used "表空间使用大小(BYTE)",
c.bytes/(1024*1024*1024) "表空间大小(GB)",
(c.bytes-d.bytes_used)/(1024*1024*1024) "表空间剩余大小(GB)",
d.bytes_used/(1024*1024*1024) "表空间使用大小(GB)",
to_char(d.bytes_used*100/c.bytes,'99.99999') || '%' "使用率"
from
(select tablespace_name,sum(bytes) bytes
from dba_temp_files group by tablespace_name) c,
(select tablespace_name,sum(bytes_cached) bytes_used
from v$temp_extent_pool group by tablespace_name) d
where c.tablespace_name = d.tablespace_name
)
order by tablespace_name

         3.2查看具体表的占用空间大小

                1)如果出现表占用空间较大的情况下,可通过truncate table tbl_name 暂时缓解

--查看具体表的占用空间大小
select * from (
select t.tablespace_name,t.owner, t.segment_name, t.segment_type, sum(t.bytes / 1024 / 1024) mb
from dba_segments t
where t.segment_type='TABLE'
group by t.tablespace_name,t.OWNER, t.segment_name, t.segment_type
) t
order by t.mb desc

        3.3查看表空间数据文件路径(根据目前已有的数据文件新增数据文件)

--查看表空间数据文件路径
select tablespace_name,file_name,bytes/1024/1024/1024 gb,autoextensible from dba_data_files where tablespace_name='USERS';

        3.4为指定表空间USERS增加数据文件

                1)路径为3中的路径,文件名称可适当更改

                2)数据文件大小可根据实际情况适当更改

--为指定表空间增加数据文件
alter tablespace USERS add tempfile '/oradata/temp02.dbf' size 10G autoextend on;

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值