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

---------------------------
SAP on Oracle 8.1.7.4.1 on Win NT 4.0

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
 WHERE vt.addr   = vs.taddr   and vt.xidusn = r.usn  and   p.addr   =
vs.paddr
 order by r.name
/

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
Wait for stopper event to be increased

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: [EMAIL PROTECTED]

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: [EMAIL PROTECTED] (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).

Reply via email to