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: