Question: How does the undo_retention
parameter relate to the size of the undo tablespace? Are there
guidelines and best practices for setting the undo_retention
parameter?
Answer:
Automatic undo management was first available in Oracle 9i and undo management in 9i
and beyond is now automatic. Also see my important notes on
the
common causes and remedies for the ORA-01555 error.
Automatic undo management depends upon your parameter setting for
undo_retention, which defines how long Oracle should try to keep committed transactions in UNDO. However, this parameter is only a suggestion. You must also have an UNDO tablespace that's large enough to handle the amount of UNDO you will be generating/holding, or you will get ORA-01555: Snapshot too old, rollback segment too small errors.
You can use the parameter undo_retention to set
the amount of time you want undo information retained in the
database.
To create an undo tablespace with the RETENTION
GUARANTEE option, issue the following command:
CREATE UNDO
TABLESPACE undo_tbs
DATAFIEL '/u02/oradata/grid/undo_tbs01.dbf'
SIZE 1 G
RETENTION GUARANTEE;
You can use the UNDO advisor to find out how large this tablespace should be given a desired UNDO retention, or look online for some scripts…just google for: oracle undo size
Oracle 10g also gives you the ability to guarantee undo. This means that instead of throwing an error on SELECT statements, it guarantees your UNDO retention for consistent reads and instead errors your DML that would cause UNDO to be overwritten.
Now, for your original question…yes, it's easier for the DBA to minimize the issues of UNDO when using automatic undo management. If you set the UNDO_RETENTION high enough with a properly sized undo tablespace you shouldn't have as many issues with UNDO. How often you commit should have nothing to do with it, as long as your DBA has properly set UNDO_RETENTION and has an optimally sized UNDO tablespace. Committing more often will only result in your script taking longer, more LGWR/DBWR issues, and the "where was I" problem if there is an error (if it errors, where did it stop?).


"Given the strategic nature of Oracle GoldenGate,
Oracle Streams will continue to be supported, but will not be
actively enhanced. Rather, the best elements of Oracle Streams will
be evaluated for inclusion with Oracle GoldenGate.
Current
customers depending on Oracle Streams will continue to be fully
supported, and Oracle Streams customers should continue using the
feature wherever it is deployed today."