1、发现一个表空间aaa使用率已达到93%,急需扩容,但asm磁盘组空间同样不足,只剩下不到100G,磁盘组扩容需要存储工程师配合,存储工程师未在现场,不具备扩容条件。
2、查看发现有一个表空间bbb为1T,但使用很低,只有20%。
3、查看该bbb表空间最大的对象是sys.aud$;
4、计划将bbb表空间resize释放空间,然后再跟aaa扩容;
5、使用alter database datafile 35 resize 1G,无法成功,发现曾经使用过最大的扩展分区;
ORA-03297: file contains used data beyond requested RESIZE value
6、查看该表空间扩展最大的对象
select * from (
select
tablespace_name,
owner,
segment_name topseg_segment_name,
partition_name,
segment_type,
round(bytes/1048576) MB
from dba_segments
where upper(tablespace_name) like upper('%xxx%')
order by MB desc
)
where rownum
发现有以BIN$开头的对象的话,清空下回收站。
7、发现扩展最大的是sys.aud$
8、由于数据库开启的审计是默认,对大部分的dml操作不会记录,因此可直接truncate
9、登录数据库truncate table sys.aud$
10、再次alter database datafile 35 resize 1G 成功
11、如果resize 不能成功,可将resize空间改大一些,比如5G,10G,就可成功。
alter database datafile 35 resize 5G;