Oracle表空间满了该如何解决?

Oracle表空间满了该如何解决?
第一步:查看表空间的使用情况
方式1:用SQL查询
–1、查看表空间的使用情况
SELECT a.tablespace_name,
a.bytes total,
b.bytes used,
c.bytes free,
(b.bytes * 100) / a.bytes "% USED ",
(c.bytes * 100) / a.bytes "% FREE "
FROM sys.sm t s a v a i l a , s y s . s m ts_avail a, sys.sm tsavaila,sys.smts_used b, sys.sm$ts_free c
WHERE a.tablespace_name = b.tablespace_name
AND a.tablespace_name = c.tablespace_name;
Oracle表空间满了该如何解决?_第1张图片可查到表空间使用率

方式2.用工具Toad查询
Oracle表空间满了该如何解决?_第2张图片第二步:处理表空间
方式1:扩展数据文件
–查看表空间路径
select tablespace_name, file_id, file_name,
round(bytes/(1024*1024),0) total_space
from dba_data_files where tablespace_name=‘PM_LTE_TBS’
order by file_name;
–添加数据文件
alter tablespace SYSAUX add datafile ‘+DATA01/wyzx/datafile/sysaux_20210430’ size 10 G;
alter tablespace NR_PM_TBS add datafile ‘+DATA02/wydb/datafile/nr_pm_tbs_2021043002’ size 30 G;
alter tablespace PM_LTE_TBS add datafile ‘+DATA02/gsyd/datafile/pm_lte_tbs.2020112301’ size 30 G;
alter tablespace PM_LTE_TBS add datafile ‘+DATA02/gsyd/datafile/pm_lte_tbs.2020112302’ size 30 G;

方式2:释放表空间
点击Toad 上面表空间快满的名称,选择objects,查询占用表空间最多的表,并删除或清空。
这种方式主要处理系统表空间如Sys,user

如:表空间System占用最多的是表AUD$
登录Oracle.
sqlplus ‘/as sysdba’
truncate table sys.AUD$

你可能感兴趣的:(数据库,数据库)