内容阅读
在知识库中专注阅读,并随时返回相关工具与课程
ORA-30036严重撤销
无法在 undo 表空间中扩展段
Unable to extend segment by in undo tablespace
错误描述
Undo 表空间已满,无法为事务 undo 数据分配更多空间。
可能原因
- Undo 表空间对于并发事务负载来说过小
- 长时间运行的事务消耗了过多的 undo
- UNDO_RETENTION 设置过高阻止了 undo 重用
解决方案
- 1向 undo 表空间添加数据文件:ALTER TABLESPACE undotbs ADD DATAFILE SIZE 2G AUTOEXTEND ON;
- 2识别并解决长时间运行的事务
- 3如适当,降低 UNDO_RETENTION
- 4切换到新的、更大的 undo 表空间
诊断命令
SELECT tablespace_name, SUM(bytes)/1024/1024 size_mb FROM dba_data_files WHERE tablespace_name = (SELECT value FROM v$parameter WHERE name = 'undo_tablespace') GROUP BY tablespace_name;SELECT s.sid, s.username, t.used_ublk * 8192/1024/1024 undo_mb FROM v$session s JOIN v$transaction t ON s.saddr = t.ses_addr ORDER BY t.used_ublk DESC;#undo#space#tablespace#transaction