***关于oracle技术问题

1、oracle中,设定undo表空间为3G,因数据量太大,经常出现undo表空间不足的错误,不知如何手工删除undo表空间的数据?
2、commit之后,如果该次提交的数据仍然在undo表空间(undo表空间很大)中,有什么方法再恢复?

---------------------------------------------------------------

回答:
1、undo表空间的数据是非常非常重要的,只有commit,rollback才会被释放掉.也是不可以用手动清除的。
解决你的问题有两点:a、为undo表空间加数据文件使其增大b、缩小你的事务,也就是增加程序中commit的间隔。
2、其实这和undo表空间没关了,只要日志都在你可以用logmnr完成你的功能。

---------------------------------------------------------------

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';

Published At
Categories with 数据库类
Tagged with
comments powered by Disqus