Rollback Segment Needs Recovery [ID 28812.1]

Rollback Segment Needs Recovery [ID 28812.1]
 
Document ID:           107693.969
Title:                 Rollback Segment Needs Recovery
Creation Date:         13-February-1995
Last Revision Date:    7-June-1995
Revision Number:       1
Product:               GENERIC
Product Version:       GENERIC
Platform.:              GENERIC
Information Type:      ADVISORY
Impact:                MEDIUM
Abstract:              This article discusses what it means when a rollback
                       segment needs recovery and how to resolve it.
Keywords:              ROLLBACK;SEGMENT;NEEDS;RECOVERY;STATUS;CORRUPT

-------------------------------------------------------------------------------

                   Rollback Segment Needs Recovery


OVERVIEW
--------
This bulletin addresses why a rollback segment has the status of
"needs recovery", what the status means, and how to resolve it.


INTRODUCTION
------------
Rollback segments can be monitored through the data dictionary view,
dba_rollback_segs. There is a status column that describes what state the
rollback segment is currently in. Normal states are either online or offline.
Occasionally, the status of "needs recovery" will appear.

When a rollback segment is in this state, bringing the rollback segment
offline or online either through the alter rollback segment command or
removing it from the rollback_segments parameter in the init.ora usually
has no effect.


UNDERSTANDING
-------------
A rollback segment falls into this status of needs recovery whenever
Oracle tries to roll back an uncommitted transaction in its transaction
table and fails.

Here are some examples of why a transaction may need to rollback:
  1-A user may do a dml transaction and decides to issue rollback
  2-A shutdown abort occurs and the database needs to do an instance recovery
    in which case, Oracle has to roll back all uncommitted transactions.

When a rollback of a transaction occurs, undo must be applied to the
data block the modified row/s are in.  If for whatever reason, that data
block is unavailable, the undo cannot be applied. The result is a 'corrupted'
rollback segment with the status of needs recovery.

What could be some reasons a datablock is unaccessible for undo?
  1-If a tablespace or a datafile is offline or missing.
  2-If the object the datablock belongs to is corrupted.
  3-If the datablock that is corrupt is actually in the rollback segment
    itself rather than the object.


HOW TO RESOLVE IT
-----------------
1-MAKE sure that all tablespaces are online and all datafiles are
  online. This can be checked through v$datafile, under the
  status column.  For tablespaces associated with the datafiles,
  look in dba_tablespaces.

If that still does not resolve the problem then

2-PUT the following in the init.ora-
  event = "10015 trace name context forever, level 10"

        Setting this event will generate a trace file that will reveal the
        necessary information about the transaction Oracle is trying to roll
        back and most importantly, what object Oracle is trying to apply
        the undo to.

3-SHUTDOWN the database (if normal does not work, immediate, if that does
  not work, abort) and bring it back up.

        Note: An ora-1545 may be encountered, or other errors. If the database
              cannot startup, contact customer support at this point.

4-CHECK in the directory that is specified by the user_dump_dest parameter
  (in the init.ora or show parameter command) for a trace file that was
  generated at startup time.

5-IN the trace file, there should be a message similar to-
  error recovery tx(#,#) object #.

        TX(#,#) refers to transaction information.
        The object # is the same as the object_id in sys.dba_objects.

6-USE the following query to find out what object Oracle is trying to
  perform. recovery on.

        select owner, object_name, object_type, status
        from dba_objects where object_id = ;

7-THIS object must be dropped so the undo can be released. An export or relying
  on a backup may be necessary to restore the object after the corrupted
  rollback segment goes away.

8-AFTER dropping the object, put the rollback segment back in the init.ora
  parameter rollback_segments, removed the event, and shutdown and startup
  the database.

In most cases, the above steps will resolve the problematic rollback segment.
If this still does not resolve the problem, it may be likely that the
corruption is in the actual rollback segment.
At this point, if the problem has not been resolved, please contact
customer support.



-------------------------------------------------------------------------------
                                      Oracle Worldwide Customer Support
 

相关内容

 

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/17252115/viewspace-742937/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/17252115/viewspace-742937/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值