You are on page 1of 22

B

1
Manually Managing Undo Data
(Rollback Segments)

Copyright © Oracle Corporation, 2002. All rights reserved.


Objectives

After completing this lesson, you should be able to do


the following:
• Create rollback segments using appropriate storage
settings
• Maintain rollback segments
• Plan the number and size of rollback segments
• Troubleshoot common rollback segment problems

B-2 Copyright © Oracle Corporation, 2002. All rights reserved.


Creating Rollback Segments

CREATE ROLLBACK SEGMENT rbs01


TABLESPACE rbs
STORAGE (
INITIAL 100K
NEXT 100K
MINEXTENTS 20
MAXEXTENTS 100
OPTIMAL 2000K );

B-3 Copyright © Oracle Corporation, 2002. All rights reserved.


B-4 Copyright © Oracle Corporation, 2002. All rights reserved.
Transactions and Rollback Segments

1 2

Transaction 1 Transaction 2
4 3

Active extent Inactive extent

B-5 Copyright © Oracle Corporation, 2002. All rights reserved.


B-6 Copyright © Oracle Corporation, 2002. All rights reserved.
Growth of Rollback Segments

1 2
1 2

5 3
4 3
4

Active extent New extent

Inactive extent

B-7 Copyright © Oracle Corporation, 2002. All rights reserved.


Shrinkage of Rollback Segments

6 1
1 2
5 2
6 3
4 3

Active extent

OPTIMAL Inactive extent

B-8 Copyright © Oracle Corporation, 2002. All rights reserved.


Bringing Rollback Segments Online

• Use the following command to make a rollback


segment available:

ALTER ROLLBACK SEGMENT rbs01 ONLINE;

• Specify the following initialization parameter to


ensure that rollback segments are brought online at
startup:

ROLLBACK_SEGMENTS=(rbs01, rbs02)

B-9 Copyright © Oracle Corporation, 2002. All rights reserved.


How Instances Acquire
Rollback Segments

Compute No
Acquire
the required Are there
named private
number enough
rollback
of rollback RBS’s?
segments.
segments.

Yes
Acquire
public
rollback
segments.
Bring all acquired
rollback segments
online.

B-10 Copyright © Oracle Corporation, 2002. All rights reserved.


Changing Rollback Segment
Storage Settings

• Use the ALTER ROLLBACK SEGMENT command.


• You can change OPTIMAL or MAXEXTENTS.

ALTER ROLLBACK SEGMENT rbs01


STORAGE( MAXEXTENTS 200 );

B-11 Copyright © Oracle Corporation, 2002. All rights reserved.


Deallocating Space From
Rollback Segments

• Use the ALTER ROLLBACK SEGMENT command.


• If extents are active, they might not shrink to the
requested size.

ALTER ROLLBACK SEGMENT rbs01


SHRINK TO 4M;

B-12 Copyright © Oracle Corporation, 2002. All rights reserved.


Taking Rollback Segment Offline

• Take a rollback segment offline to make it


unavailable.
• If transactions are using the rollback segment, the
status is temporarily changed to PENDING OFFLINE.
ALTER ROLLBACK SEGMENT rbs01
OFFLINE;

B-13 Copyright © Oracle Corporation, 2002. All rights reserved.


Dropping Rollback Segments

• A rollback segment must be offline before it can be


dropped.
• To drop a rollback segment:

DROP ROLLBACK SEGMENT rbs01;

B-14 Copyright © Oracle Corporation, 2002. All rights reserved.


Planning Rollback Segments: Number

• OLTP
– Many small rollback segments
– Four transactions per rollback segment
– Up to ten transactions per rollback segment
• Batch
– Few large rollback segments
– One per transaction

B-15 Copyright © Oracle Corporation, 2002. All rights reserved.


Planning Rollback Segments:
Number of Extents

0.50

0.40
Probability
of extending 0.30

0.20

0.10

0.00
0 10 20 30 40
Number of extents

B-16 Copyright © Oracle Corporation, 2002. All rights reserved.


Rollback Segment Problems

• Insufficient space for transactions


• Read-consistency errors
• Blocking sessions
• Errors in taking a tablespace offline

B-17 Copyright © Oracle Corporation, 2002. All rights reserved.


Insufficient Space for Transactions

• No space in tablespace:
– Extend data files
– Enables automatic extension of data files
– Add data files
• MAXEXTENTS reached for segment
– Increase MAXEXTENTS
– Re-create segments with larger extent sizes

B-18 Copyright © Oracle Corporation, 2002. All rights reserved.


Read-Consistency Errors

SELECT *
Tabl FROM table Reused block
e

New image
Image at statement commencement

B-19 Copyright © Oracle Corporation, 2002. All rights reserved.


Blocking Sessions

Blocking
session

1 2
4 1
Extent 3
5 3
3 2
4

Existing extent

New extent

B-20 Copyright © Oracle Corporation, 2002. All rights reserved.


B-21 Copyright © Oracle Corporation, 2002. All rights reserved.
Errors in Taking a Tablespace Offline

You cannot take a tablespace offline if it contains an


active rollback segment.
1. Determine which rollback segments are in the
tablespace.
2. Take all of these rollback segments offline.
3. Find active transactions using these rollback
segments.
4. Find the session ID and serial number.
5. Terminate the session, if necessary.
6. Take the tablespace offline.

B-22 Copyright © Oracle Corporation, 2002. All rights reserved.

You might also like