Showing results for 
Search instead for 
Did you mean: 

Oracle file system full

Go to solution
Kenn Chen

Oracle file system full

Currently, my file system for oracle is 96% and I found that the most bigger file reside this directory is rbs01.dbf file. This is rollback segment files. Any body can brief me what is this file for and what is different between online redo and rollback segments. This file size around 450MB and is it too huge and needs to drop it ? Thanks.
Cyber Zen
Esteemed Contributor

Re: Oracle file system full

this is from Oracle Admin Guide
Online Redo Log Contents
Online redo log files are filled with redo records. A redo record, also called a redo
entry, is made up of a group of change vectors, each of which is a description of a
change made to a single block in the database. For example, if you change a salary
value in an employee table, you generate a redo record containing change vectors
that describe changes to the data segment block for the table, the rollback segment
data block, and the transaction table of the rollback segments.
Redo entries record data that you can use to reconstruct all changes made to the
database, including the rollback segments. Therefore, the online redo log also
protects rollback data. When you recover the database using redo data, Oracle reads
the change vectors in the redo records and applies the changes to the relevant

Every database contains one or more rollback segments, which are portions of the
database that record the actions of transactions in the event that a transaction is
rolled back. You use rollback segments to provide read consistency, roll back
transactions, and recover the database.
See Also: For more information about rollback segments, see Oracle8i Concepts.

if rollback segment is online , you cannot drop it.
enjoy any little thing in my life
Volker Borowski
Honored Contributor

Re: Oracle file system full

How to shrink rollback TS ?

1) Find TS with rollback segs
select tablespace_name from dba_segments
where segment_type='ROLLBACK';

2) Find datafiles belonging to RBS TS
Select * from dba_datafiles
where tablespace_name in ( result of 1 );

3a) try resizing datafile to shrink:
alter database datafile '/a/b/c/d.dbf'
resize nnnM;
Will succed, or fail if space already has
been used.

3b) otherwise you'll need to recreate the TS.
Short description (application can stay up):
RS=rollback segment

- create TS rbs_temp
- create RS_tmp in TS rbs_tmp (as many as needed)
- alter all RS_tmp online

- alter RS_standard offline (as many as involved)
- drop RS_standard (as many as involved)
- drop ts rbs_standard
- delete datafiles belonging to rbs_standard

- create new TS rbs_standard
- create RS_standard in TS rbs_standard (as many as needed)
- alter all RS_standard online

- alter RS_tmp offline (as many as involved)
- drop RS_tmp (as many as involved)
- drop ts rbs_tmp
- delete datafiles belonging to rbs_tmp

Let me know, if you need more details
Thierry Poels_1
Honored Contributor

Re: Oracle file system full

450MB for the Rollback tablespace might be OK for a large database, or maybe even necessary if you have many large updates.
BTW I never set autoextend enabled for Rollback datafiles, one bad update might increase the datafile without control.
All unix flavours are exactly the same . . . . . . . . . . for end users anyway.