undo空间会不断增长的。删除方法如下: alter system set undo_tablespace = ''; DROP TABLESPACE "UNDOTBS" INCLUDING CONTENTS AND DATAFILES CASCADE CONSTRAINTS; CREATE UNDO TABLESPACE "UNDOTBS" DATAFILE '/oracle/oradata/test/UNDOTBS.dbf' SIZE 3000M; alter system set undo_tablespace = 'UNDOTBS';
1、undo表空间的数据是非常非常重要的,只有commit,rollback才会被释放掉.也是不可以用手动清除的。
解决你的问题有两点:a、为undo表空间加数据文件使其增大b、缩小你的事务,也就是增加程序中commit的间隔。
2、其实这和undo表空间没关了,只要日志都在你可以用logmnr完成你的功能。
alter system set undo_tablespace = '';
DROP TABLESPACE "UNDOTBS" INCLUDING CONTENTS AND DATAFILES CASCADE CONSTRAINTS;
CREATE UNDO TABLESPACE "UNDOTBS"
DATAFILE '/oracle/oradata/test/UNDOTBS.dbf' SIZE 3000M;
alter system set undo_tablespace = 'UNDOTBS';