【发布时间】:2015-04-30 15:47:14
【问题描述】:
我有一个存储过程,可以进行非常大的更新。有时作业失败并出现错误ORA-30036 Unable to extend segment by 8 in undo tablespace 'undotbs2'
但几个小时后,我们重新运行了这项工作并成功完成。
我检查并发现 undotbs2 已经将 AUTOEXTENSIBLE 设置为 YES,大小为 3 GB,所以我猜 undo 表空间已经有相当大的大小,并且已经打开了自动空间管理。
我的问题是,为什么我们重新运行后它会成功完成?是不是因为同时有其他事务在使用undotbs2?对于这个错误,Oracle 提到“另一种方法是等到活动事务提交。”,“活动事务”是指除了存储过程之外发生的其他事务/sql 吗?
Oracle 版本为 11.2.0.1.0
谢谢
【问题讨论】:
-
表空间/数据文件是自动扩展的,但它是否达到了它的最大大小(来自
dba_data_files.maxbytes,或dba_tablespaces.maxsize),并且不能超过3GB?是的,其他会话可能正在使用它(这就是“其他事务”所指的内容),但在增加大小限制之前,可能值得找出其他正在运行的内容以及正在使用空间的内容。
标签: oracle oracle11g undo tablespace