In Oracle10g, for dba_tablespace, an additional column is added as retention.
Recall that before Oracle 10 Gb, in the automatic undo management mode, we all know that the undo_retention parameter is used to control the Undo information retention time after the transaction is committed. The undo information can be used to construct the consistent read and for a series of Flash recovery, and enough undo information can reduce the occurrence of classic ORA-01555 errors, in Oracle 9r1, the default value of this value is 900 seconds. After Oracle 9r2, this value is increased to 10800 seconds. Even if we set the undo_retention parameter, This Is A noguarantee restriction by default. That is to say, I will undo_retention = 10800, so I thought that after a transaction commit, the previous Undo can be saved for 10800 seconds before it can be overwritten by another transaction DML, I do not know that when there are other transaction DML processing processes that require undo space, it is precisely at this time not enough space for Undo, that is, I did not allow automatic expansion of Undo tablespace. Since our retention is noguarantee, transaction DML will ignore this retention time limit and directly repeat and overwrite our undo information, this result is not expected in many cases.
After 10 Gb of Oracle, Oracle proposed a feature: Undo guarantee, which forces Oracle to provide the Undo information of guarantee, that is, if the transaction DML of a session needs the Undo space, even if the Undo space is insufficient, this session will not forcibly overwrite the Undo information protected by undo_retention. Therefore, this transaction DML reports an error and exits automatically due to insufficient undo space.
In Oracle10g, how can I modify the guarantee mode?
Alter tablespace undo_samll retention guarantee;