Oracle FAQ | Your Portal to the Oracle Knowledge Grid |
Home -> Community -> Mailing Lists -> Oracle-L -> Parallel Rollbacks
I hope somebody can provide me with more information on parallel rollbacks.
I've checked metalink and google, but haven't found much information. I read
that starting in 8i, SMON can be used to clean up a process after it's been
killed.
Questions first, story last.
What criteria is used to decide if PMON or SMON is used?
Is SMON used only for parallel rollbacks, otherwise PMON is used?
Why was there so many archive logs generated to rollback the transaction? I
wasn't expecting that.
Is the last query adequate to monitor the progress or is there a better way?
Are there any init.ora parameters that I can set to change the behaviour or
improve performance?
Thanks,
Steve
The other evening, the SAP Basis admin killed a long running process that hadn't generated much redo (600 meg), but after he killed it, it generated 2.5 gig of redo in about an about an hour.
I got called about 20 minutes after he did it because the system started
running slow.
I logged in and ran this query to see if there were any open transactions,
but nothing came back.
SELECT vs.username , vs.osuser
, r.name rollback_segment , vt.used_ublk
, vt.used_urec , vt.start_time
, vs.sid , vs.serial#
, p.spid process
FROM v$transaction vt
, v$rollname r
, v$session vs
, v$process p
I kept seeing the logs switches, so I started looking in v$session_wait and saw the following events.
EVENT
PX Deq: Txn Recovery Start PX Deq: Txn Recovery Start PX Deq: Txn Recovery Start
Metalink pointed me to:
V$fast_start_servers
v$fast_start_transactions
>From there, I ran this (not sure if the joins are correct) that allowed me to watch the process slowly comple.
SELECT T.USN
-- , R.NAME
, USERNAME
-- , SERIAL#
, TERMINAL
, PROGRAM
, T.STATE
, ROUND (UNDOBLOCKSDONE / UNDOBLOCKSTOTAL * 100, 1 ) PCT_DONE
, T.UNDOBLOCKSDONE
, T.UNDOBLOCKSTOTAL
, T.SLT
, T.SEQ
, T.PID
, T.CPUTIME
-- , T.PARENTUSN -- , T.PARENTSLT -- , T.PARENTSEQ from v$fast_start_transactions T
, v$TRANSACTION R
, v$process p
WHERE T.PARENTUSN = R.XIDUSN and T.PARENTSLT = R.XIDSLOT and T.PARENTSEQ = R.XIDSQN and t.pid = p.pid
--output from query
USN Oracle User TERMINAL PROGRAM STATE PCT_DONE UNDOBLOCKSDONE UNDOBLOCKSTOTAL SLT SEQ PID CPUTIME PARENTUSN PARENTSLT PARENTSEQ ---------- -------------------- ---------------- ------------------------- ---------------- ---------- -------------- --------------- ---------- ------- --- ---------- ---------- ---------- ---------- ----------
14 SYSTEM SATSAP26 ORACLE.EXE (P000) RECOVERING 98.8 633522 641130 89 207166 17 1 0 0 0
-- Please see the official ORACLE-L FAQ: http://www.orafaq.net -- Author: Steve Perry INET: sperry_at_sprynet.com Fat City Network Services -- 858-538-5051 http://www.fatcity.com San Diego, California -- Mailing list and web hosting services --------------------------------------------------------------------- To REMOVE yourself from this mailing list, send an E-Mail message to: ListGuru_at_fatcity.com (note EXACT spelling of 'ListGuru') and in the message BODY, include a line containing: UNSUB ORACLE-L (or the name of mailing list you want to be removed from). You may also send the HELP command for other information (like subscribing).Received on Thu Feb 13 2003 - 20:08:37 CST