2026-03-12 20:23:15
This commit is contained in:
75
vg/rollback_monitor.sql
Normal file
75
vg/rollback_monitor.sql
Normal file
@@ -0,0 +1,75 @@
|
||||
@@header
|
||||
|
||||
set term off
|
||||
/*
|
||||
*
|
||||
* Author : Vishal Gupta
|
||||
* Purpose : Monitoring rollback currently occurring in database.
|
||||
*
|
||||
* Revision History:
|
||||
* ===================
|
||||
* Date Author Description
|
||||
* --------- ------------ -----------------------------------------
|
||||
* 12-Feb-15 Vishal Gupta Reordered column, reformatted output layout
|
||||
* 08-Apr-09 Vishal Gupta Created
|
||||
*/
|
||||
set term on
|
||||
|
||||
COLUMN spid HEADING "SPID" FORMAT 999999
|
||||
COLUMN INST_ID HEADING "I#" FORMAT 99
|
||||
COLUMN sid HEADING "SID" FORMAT 99999
|
||||
COLUMN PID HEADING "PID" FORMAT 999999
|
||||
COLUMN state HEADING "State" FORMAT a12
|
||||
COLUMN done HEADING "Undo|Recovery|SoFar|(MB)" FORMAT 9,999,999
|
||||
COLUMN total HEADING "Total|Recovery|Needed|(MB)" FORMAT 9,999,999
|
||||
COLUMN percent_done HEADING "%Done" FORMAT 999.99
|
||||
COLUMN cputime HEADING "CPU Time" FORMAT a13 JUSTIFY RIGHT
|
||||
COLUMN rcvservers HEADING "Server|In Last|Recovery" FORMAT 9999999 JUSTIFY RIGHT
|
||||
COLUMN eta HEADING "ETA" FORMAT a18
|
||||
|
||||
PROMPT
|
||||
PROMPT **************************************
|
||||
PROMPT * Recovery By SMON
|
||||
PROMPT **************************************
|
||||
|
||||
SELECT r.state
|
||||
, decode(cputime,0,'unknown'
|
||||
,TO_CHAR(sysdate+(((undoblockstotal-undoblocksdone) / (undoblocksdone / cputime)) / 86400),'DD-MON-YY HH24:MI:SS')
|
||||
) eta
|
||||
, r.INST_ID
|
||||
, ROUND((r.undoblocksdone * b.value)/power(1024,2)) done
|
||||
, ROUND((r.undoblockstotal * b.value)/power(1024,2)) total
|
||||
, ROUND((r.undoblocksdone/r.undoblockstotal)*100,2) percent_done
|
||||
, LPAD(FLOOR(r.cputime/ 3600) || 'h '
|
||||
|| LPAD(FLOOR(MOD(r.cputime, 3600 ) / 60),2) || 'm '
|
||||
|| LPAD(MOD(r.cputime, 60 ) ,2) || 's' ,13) cputime
|
||||
, r.rcvservers
|
||||
, r.xid
|
||||
, r.pxid
|
||||
FROM gv$fast_start_transactions r
|
||||
JOIN v$parameter b ON b.name = 'db_block_size'
|
||||
--LEFT OUTER JOIN gv$transaction t ON t.inst_id = r.inst_id AND r.usn = xidusn AND r.slt = t.xidslot AND r.seq = t.xidsqn
|
||||
where 1=1
|
||||
AND r.state <> 'RECOVERED'
|
||||
;
|
||||
|
||||
|
||||
PROMPT
|
||||
PROMPT **************************************
|
||||
PROMPT * Recovery By Shadow process
|
||||
PROMPT **************************************
|
||||
|
||||
select s.inst_id
|
||||
, s.sid
|
||||
, s.status
|
||||
, s.username
|
||||
, s.osuser
|
||||
, ROUND((t.used_ublk * p.value) / power(1024,2)) "Undo (MB)"
|
||||
FROM gv$transaction t
|
||||
, gv$session s
|
||||
, (select value from v$parameter where name = 'db_block_size') p
|
||||
WHERE s.status = 'KILLED'
|
||||
AND t.inst_id = s.inst_id AND t.ses_addr = s.saddr
|
||||
;
|
||||
|
||||
@@footer
|
||||
Reference in New Issue
Block a user