Download Oracle 11g / 12 c Software

MySQL Tutorial

Every Oracle Database must have a method of maintaining information that
is used to roll back, or undo, changes to the database. Such information
consists of records of the actions of transactions, primarily before they are
committed. These records are collectively referred to as undo.

When the system is first running in the production environment, you may be
unsure of the space requirements of the undo tablespace. In this case, you can
enable automatic extension for datafiles of the undo tablespace so that they
automatically increase in size when more space is needed

2. Shutdown the Database and set the following parameters in parameter
file.

UNDO_MANAGEMENT=AUTOUNDO_TABLESPACE=myundo

3. Start the Database.

Now Oracle Database will use Automatic Undo Space Management.

Calculating the Space Requirements For Undo Retention

You can calculate space requirements manually using the following
formula:

UndoSpace = UR * UPS + overhead

where:

UndoSpace is the number of undo blocks

UR is UNDO_RETENTION in seconds. This value should take into
consideration long-running queries and any flashback requirements.

UPS is undo blocks for each second

overhead is the small overhead for metadata (transaction tables,
bitmaps, and so forth)

As an example, if UNDO_RETENTION is set to 3 hours, and the transaction
rate (UPS) is 100 undo blocks for each second, with a 8K block size, the
required undo space is computed as follows:

(3 * 3600 * 100 * 8K) = 8.24GBs

To get the values for UPS, Overhead query the V$UNDOSTAT view. By
giving the following statement

SQL> Select * from V$UNDOSTAT;

Altering UNDO Tablespace

If the Undo tablespace is full, you can resize existing datafiles or add new
datafiles to it

Dropping an Undo Tablespace

Use the DROP TABLESPACE statement to drop an undo tablespace. The
following example drops the undo tablespace undotbs_01:

SQL> DROP TABLESPACE myundo;

An undo tablespace can only be dropped if it is not currently used by
any instance. If the undo tablespace contains any outstanding transactions (for
example, a transaction died but has not yet been recovered), the DROP TABLESPACE
statement fails.

Switching Undo Tablespaces

You can switch from using one undo tablespace to another. Because the
UNDO_TABLESPACE initialization parameter is a dynamic parameter, the ALTER
SYSTEM SET statement can be used to assign a new undo tablespace.

The following statement switches to a new undo tablespace:

ALTER SYSTEM SET UNDO_TABLESPACE = myundo2;

Assuming myundo is the current undo tablespace, after this command
successfully executes, the instance uses myundo2 in place of myundo as its undo
tablespace.

Viewing Information about Undo Tablespace

To view statistics for tuning undo tablespace query the following
dictionary

SQL>select * from v$undostat;

To see how many active Transactions are there and to see undo segment
information give the following command

SQL>select * from v$transaction;

To see the sizes of extents in the undo tablespace give the following
query