oracle 清理回滚段表空间

数据库突然,把磁盘空间占满,经常是由于回滚段空间导致,所以需要清理回滚段
在这里插入图片描述

step 1、查看正在使用的回滚段表空间

SELECT T.tablespace_name FROM dba_tablespaces t WHERE t.contents = 'UNDO';

在这里插入图片描述

step 2、查看回滚段表空间文件路径

这里查看路径后以便 后面创建新的回滚段空间

SELECT t.file_name FROM dba_data_files  t where t.tablespace_name='UNDOTBS1';

在这里插入图片描述

step 3、重新创建一个临时表空间

	create undo tablespace UNDOTBS2
datafile '/app/data/dmispdb/undo/undotbs201.dbf' size  34358689792
;

step 4、 切换表空间

alter system set undo_tablespace = temp_undo scope=both;

step 5、删除回滚表空间以及文件

  Drop tablespace UNDOTBS1 including contents and datafiles;

报错 后 重启数据库

step 6 、删除表空间错误处理

重启数据库删除还报错, ora-30013
在这里插入图片描述

 --查看事务
select * from dba_rollback_segs
where tablespace_name='UNDOTBS1' and status = 'ONLINE';
--找到session
select SID, substr(username, 1, 10) username, serial#, segment_name
   from v$transaction, dba_rollback_segs, v$session
  where saddr = ses_addr
    and xidusn = segment_id;
-- 杀进程
alter system kill session 'SID,SERIAL#' immediate;

step 7、 检查磁盘空间

df -h

删除表空间文件后,检查磁盘空间 ,发现空间还未释放
在这里插入图片描述
然后百度说可能是还有其他进程在使用undo,只是 之前没有杀进程时,没有查到。需要再次重启数据库,
重启后,发现磁盘空间已经是否,不再占用100%
在这里插入图片描述

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

菜菜的中年程序猿

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值