10g 中RETENTION GUARANTEE 的作用
时间:2010-06-02 来源:areyoubird
设置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;
在DBA_TABLESPACES视图中增加了RETENTION字段用以描述该选项:
SQL> select tablespace_name,contents,retention from dba_tablespaces;
TABLESPACE_NAME CONTENTS RETENTION
------------------------------ --------- -----------
SYSTEM PERMANENT NOT APPLY
UNDOTBS1 UNDO NOGUARANTEE
SYSAUX PERMANENT NOT APPLY
TEMP TEMPORARY NOT APPLY
USERS PERMANENT NOT APPLY
EYGLE PERMANENT NOT APPLY
TEST PERMANENT NOT APPLY
ITPUB PERMANENT NOT APPLY
TRANS PERMANENT NOT APPLY
BIGTBS PERMANENT NOT APPLY
TEMP2 TEMPORARY NOT APPLY
TEMP03 TEMPORARY NOT APPLY
DFMBRC PERMANENT NOT APPLY
T2K PERMANENT NOT APPLY
14 rows selected