10g 中RETENTION GUARANTEE 的作用 :
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;
QUESTION 90
Your database instance is configured with automatic undo management and the
UNDO_RETENTION parameter is set to 900 seconds. You executed the following command
to enable retention guarantee:
SQL> ALTER TABLESPACE undotbs1 RETENTION GUARANTEE;
What affect would this command have on the database?
A. The extents in the undo tablespace retain data until the next full database backup
B. The extents containing committed undo in the undo tablespace are not overwritten for at least 15 minutes
C. The extents containing committed data in the undo tablespace are not overwritten until the instance is shut
down
D. The extents containing committed undo in the undo tablepace are transferred to Flash Recovery Area before
being overwritten