【OCP学习1z0-052记录10】【Oracle 10g】undo segment设置RETENTION GUARANTEE

60: View the Exhibit and examine the undo tablespace attributes.
Your database instance is experiencing a large volume of transactions from non-DBA users in the
last one hour. The undo tablespace UNDOTBS1 is full with transactions and no transaction was
committed more than one hour ago. The database has two more undo tablespaces.
What happens to the new DML operations in this scenario?
A.The DML commands will fail.
B.The undo data generated by the DML is stored in one of the two other undo tablespaces.
C.The undo data generated by the DML will overwrite the extents that contain committed undo
data.

D.The undo data generated by the DML is stored in the SYSTEM undo segment of the SYSTEM
tablespace.
Correct Answers:A
Explanation:

 

1、先解释下undo_retention

设置undo_retention,保证commit 后的数据在undo segment中保留多长时间。但是并不能保证commit后的undo 信息在undo_retention的时间内一定不被覆写,当undo segment不够时,还是会覆盖已commit的undo 信息。

2、Oracle 10g之后,oracle提出了一个特性就是undo的guarantee,可以强制oracle来guarantee的undo信息,也就说如果一个session的transaction DML需要undo空间的时候,即使undo的空间不足,这个session也不会强制覆盖由undo_retention所保护的undo信息,那么这个transaction DML会因为undo空间的不足会而report一个error并自动退出。 在Oracle10g中如何要修改guarantee模式可以。

如果需要保证在undo_retention时间内undo 信息一定不被覆写的话,可以对undo segment设置RETENTION GUARANTEE。但是这个参数受到undo_retention和undo size的限制。如果undo size 太小,undo_retention设置太久,设置retention guarantee 时就会报错:

 

查询表空间是否guarantee

SQL> select tablespace_name,block_size,extent_management , segment_space_management,contents,retention  from dba_tablespaces; 
使undo表空间retention guarantee

设置该参数

 alter tablespace undotbs2 retention guarantee;

撤销该参数

 alter tablespace undotbs2 retention noguarantee;

 

 

默认还原行为是覆盖已提交、但尚未过期的事务处理的还原信息,而不是让活动事务处理因缺少还原空间而失败。
保证保留时间会改变此行为。有了保留时间保证,即使会导致事务处理失败,仍然会强制执行还原保留时间设置。
+

此题,

如果设置了undo retention的时间为60分钟。retention guarantee 设置为yes并且auto_extensible设置为no
以上的设置,在undo表空间没有自动扩展,并且undo表空间已经满了,但是设置了retention guarantee即,保证保留时间为60分钟,新的事务不能覆盖旧的,所以后来的事务会失败。A

如果auto_extensible=yes,retention guarantee=no等,一般情况就是C

你可能感兴趣的:(ocp)