| Oracle FAQ | Your Portal to the Oracle Knowledge Grid | |
Home -> Community -> Usenet -> c.d.o.server -> Re: Unable do DROP ROLLBACK SEGEMENT
The DBA_ROLLBACK_SEGS view shows a rollback segment as "PARTLY AVAILABLE"
if it is otherwise OFFLINE and either:
In case 'a' SMON will continue to roll out any active transactions in the rollback segment and finally mark it as 'OFFLINE'. If an error is encountered preventing a transaction from rolling out the status is changed to "NEEDS RECOVERY".
In case 'b' the in-doubt transaction has to be resolved.
It is possible to ONLINE a "PARTLY AVAILABLE" rollback segment - doing so will change its status to "ONLINE".
To check for any active transactions on a rollback segment:
SELECT KTUXEUSN, KTUXESLT, KTUXESQN, /* Transaction ID */ KTUXESTA Status, KTUXECFL Flags FROM x$ktuxe WHERE ktuxesta!='INACTIVE' AND ktuxeusn=<SEGMENT_ID> ;
If this returns rows then these transactions must commit or roll back before the rollback segment can be considered fully recovered.
Possible combinations of returned values include:
Status Flags Meaning
~~~~~~ ~~~~~ ~~~~~~~
ACTIVE NONE (or null) Transaction is currently active awaiting to
either commit or roll back.
ACTIVE DEAD Transaction is dead and needs to be rolled out.
PREPARED SCO|COL|REV|DEAD This is part of a distributed transaction.
The DEAD indicates it is a failed distributed
transaction but as it is PREPARED it may need
to commit or roll back.
Note: If the select returns no rows do not immediately assume that the
rollback segment is clear of any transactions - if Oracle cannot
see the rollback segment header then the above select will show no
rows. If you are not sure if the rollback segment header is
accessible then perform these steps:
regards
Srivenu
Received on Thu Mar 11 2004 - 00:02:10 CST
![]() |
![]() |