阅读量:2
当Oracle undo表空间满了,可以通过以下步骤来清理:
- 查看undo表空间使用情况:
SELECT tablespace_name, sum(bytes) / 1024 / 1024 AS "Undo Space (MB)"
FROM dba_undo_extents
GROUP BY tablespace_name;
- 找出占用undo表空间较大的事务:
SELECT r.name, t.xidusn, t.xidslot, t.xidsqn, t.start_time
FROM v$transaction t, v$session s, v$rollname r
WHERE t.addr = s.taddr
AND s.ses_addr = t.ses_addr
AND t.xidusn = r.usn;
- 杀掉占用undo表空间过大的事务:
ALTER SYSTEM KILL SESSION 'sid,serial#';
- 执行回滚操作:
ROLLBACK;
- 扩展undo表空间:
ALTER DATABASE DATAFILE 'undo_datafile_path' RESIZE size;
- 重建undo表空间:
CREATE UNDO TABLESPACE new_undo_ts DATAFILE 'new_undo_datafile_path' SIZE size;
注意:在执行以上操作之前,请务必备份重要数据,以避免数据丢失。
以上就是关于“oracle undo表空间满了如何清理”的相关介绍,筋斗云是国内较早的云主机应用的服务商,拥有10余年行业经验,提供丰富的云服务器、租用服务器等相关产品服务。云服务器资源弹性伸缩,主机vCPU、内存性能强悍、超高I/O速度、故障秒级恢复;电子化备案,提交快速,专业团队7×24小时服务支持!
简单好用、高性价比云服务器租用链接:https://www.jindouyun.cn/product/cvm