RE: Terminate rollback?

  • From: Brian S Wisniewski <brian.s.wisniewski@xxxxxxxxxxxx>
  • To: "oracle-l@xxxxxxxxxxxxx" <oracle-l@xxxxxxxxxxxxx>
  • Date: Thu, 2 Apr 2009 23:49:10 -0400

Riyaj, it looks like this worked.  Things acted a little flaky initially but 
there were  a lot of jobs running from dbms_job while I was messing around with 
this.  I shutdown abort and on restart there were still some blocks showing as 
active in dba_undo_extents but it looks like they're getting cleared out now.

Thanks for this - wouldn't use it anywhere other than dev but it's good to have 
for situations like this.

- Brian

From: Riyaj Shamsudeen [mailto:riyaj.shamsudeen@xxxxxxxxx]
Sent: Thursday, April 02, 2009 10:04 PM
To: Brian S Wisniewski
Cc: oracle-l@xxxxxxxxxxxxx
Subject: Re: Terminate rollback?

If you can't restart the instance, you can still perform this using following 
method:

   oradebug setospid <smonpid>
   oradebug event 10513 trace name context forever, level 2
   <find the process and kill OS process (not just alter system kill)>
    you should be able to drop the table now..
   Enable smon recovery again.
   oradebug event 10513 trace name context off

I haven't tested this method though :-(. But, this method should work too..

Cheers

Riyaj Shamsudeen
Principal DBA,
Ora!nternals -  http://www.orainternals.com
Specialists in Performance, Recovery and EBS11i
Blog: http://orainternals.wordpress.com

On Thu, Apr 2, 2009 at 6:25 PM, Riyaj Shamsudeen 
<riyaj.shamsudeen@xxxxxxxxx<mailto:riyaj.shamsudeen@xxxxxxxxx>> wrote:
Brian
  You may be able to use this method:

  1. Kill the instance with shutdown abort.
  2. Set event 10513 to disable smon transaction rollback. Since the instance 
is dead, transaction must be rolled back by smon. 10513 disable smon rollback.
  startup nomount;
   alter system set events '10513 trace name context forever, level 2' 
scope=memory;
  alter database mount;
  alter database open;
  3. After opening database, drop the table..
   drop table t1;
  4. Now, make sure event is off..  This is a very *critical* step.
   alter system set events '10513 trace name context off';
   or just restart instance..
   show parameter event

I just tested this in 11g and should work in 10g too..Search for smon 10513 in 
metalink and you can read more information about this event.

Good luck!

PS: I wouldn't try this method in production though..


Cheers

Riyaj Shamsudeen
Principal DBA,
Ora!nternals -  http://www.orainternals.com
Specialists in Performance, Recovery and EBS11i
Blog: http://orainternals.wordpress.com

Original message:
=============

On Thu, Apr 2, 2009 at 11:29 AM, Brian S Wisniewski 
<brian.s.wisniewski@xxxxxxxxxxxx<mailto:brian.s.wisniewski@xxxxxxxxxxxx>> wrote:
10.2.0.4  DEVELOPMENT database

Is there any way (oracle events) to stop a rollback that is in-flight?  I want 
to drop the object that the rollback is occurring against and start over. The 
rollback that is in-flight is going to run for hours and I'd rather not wait, 
if possible.  This is against a development database so I'm not concerned about 
using undocumented processes if anyone has one available.  I looked through the 
oracle events but didn't find one that stood out.

Thanks - Brian

________________________________




This communication is for informational purposes only. It is not
intended as an offer or solicitation for the purchase or sale of
any financial instrument or as an official confirmation of any
transaction. All market prices, data and other information are not
warranted as to completeness or accuracy and are subject to change
without notice. Any comments or statements made herein do not
necessarily reflect those of JPMorgan Chase & Co., its subsidiaries
and affiliates.

This transmission may contain information that is privileged,
confidential, legally privileged, and/or exempt from disclosure
under applicable law. If you are not the intended recipient, you
are hereby notified that any disclosure, copying, distribution, or
use of the information contained herein (including any reliance
thereon) is STRICTLY PROHIBITED. Although this transmission and any
attachments are believed to be free of any virus or other defect
that might affect any computer system into which it is received and
opened, it is the responsibility of the recipient to ensure that it
is virus free and no responsibility is accepted by JPMorgan Chase &
Co., its subsidiaries and affiliates, as applicable, for any loss
or damage arising in any way from its use. If you received this
transmission in error, please immediately contact the sender and
destroy the material in its entirety, whether in electronic or hard
copy format. Thank you.

Please refer to http://www.jpmorgan.com/pages/disclosures for
disclosures relating to European legal entities.

Other related posts: