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.