1、先解释下undo_retention
设置undo_retention,保证commit 后的数据在undo segment中保留多长时间。但是并不能保证commit后的undo 信息在undo_retention的时间内一定不被覆写,当undo segment不够时,还是会覆盖已commit的undo 信息。
2、如果需要保证在undo_retention时间内undo 信息一定不被覆写的话,可以对undo segment设置RETENTION GUARANTEE。但是这个参数受到undo_retention和undo size的限制。如果undo size 太小,undo_retention设置太久,设置retention guarantee 时就会报错:
ORA-30036: unable to extend segment by 8 in undo tablespace 'UNDOTBS2'
3、设置该参数
alter tablespace undotbs2 retention guarantee;
撤销该参数
alter tablespace undotbs2 retention noguarantee;
转自
http://www.cnblogs.com/yifan268/archive/2008/07/23/1249851.html