2026-03-12 20:23:15
This commit is contained in:
91
vg/dg_transport_lag.sql
Normal file
91
vg/dg_transport_lag.sql
Normal file
@@ -0,0 +1,91 @@
|
||||
@@header
|
||||
/*
|
||||
*
|
||||
* Author : Vishal Gupta
|
||||
* Purpose : Display "Real" transport lag on DataGuard standby database
|
||||
* Parameter : 1 - Number of hours (Default '48')
|
||||
* : 2 - LagMinutes (Default 1 minute)
|
||||
*
|
||||
* Revision History:
|
||||
* ===================
|
||||
* Date Author Description
|
||||
* --------- ------------ -----------------------------------------
|
||||
* 14-Jan-15 Vishal Gupta Created
|
||||
*
|
||||
*/
|
||||
|
||||
|
||||
|
||||
/************************************
|
||||
* INPUT PARAMETERS
|
||||
************************************/
|
||||
UNDEFINE HOURS
|
||||
UNDEFINE LagMinutes
|
||||
DEFINE HOURS="&&1"
|
||||
DEFINE LagMinutes="&&2"
|
||||
|
||||
set term off
|
||||
COLUMN _HOURS NEW_VALUE HOURS NOPRINT
|
||||
COLUMN _LagMinutes NEW_VALUE LagMinutes NOPRINT
|
||||
|
||||
SELECT DECODE('&&HOURS','','48','&&HOURS') "_HOURS"
|
||||
, DECODE('&&LagMinutes','','1','&&LagMinutes') "_LagMinutes"
|
||||
FROM DUAL;
|
||||
set term on
|
||||
|
||||
|
||||
/************************************
|
||||
* M A I N S C R I P T
|
||||
************************************/
|
||||
|
||||
PROMPT *************************************************
|
||||
PROMPT * DataGuard - Real Transport Lag
|
||||
PROMPT *
|
||||
PROMPT * Input Parameter:
|
||||
PROMPT * Number Of Hours : &&HOURS
|
||||
PROMPT * Lag Minutes : &&LagMinutes
|
||||
PROMPT *************************************************
|
||||
|
||||
COLUMN thread# HEADING "T#" FORMAT 999
|
||||
COLUMN sequence# HEADING "SEQ#" FORMAT 99999999
|
||||
COLUMN applied HEADING "APPLIED" FORMAT a3
|
||||
COLUMN FIRST_TIME HEADING "FIRST_TIME" FORMAT a20
|
||||
COLUMN NEXT_TIME HEADING "NEXT_TIME" FORMAT a20
|
||||
COLUMN COMPLETION_TIME HEADING "COMPLETION_TIME" FORMAT a20
|
||||
COLUMN size_mb HEADING "SIZE_MB" FORMAT 99,999
|
||||
COLUMN delay_in_shipping HEADING "Delay in Shipping" FORMAT a20
|
||||
|
||||
/*
|
||||
* Not using WITH clause (aka CTE aka sub-query refactor'ing
|
||||
* , as it does not work on standby database in MOUNT mode and only works in OPEN mode.
|
||||
*/
|
||||
|
||||
select l.thread#
|
||||
, l.sequence#
|
||||
, l.applied
|
||||
, l.deleted
|
||||
, l.status
|
||||
, l.archived
|
||||
, TO_CHAR(l.first_time,'DD-MON-YY HH24:MI:SS') first_time
|
||||
, TO_CHAR(l.next_time,'DD-MON-YY HH24:MI:SS') next_time
|
||||
, ROUND((l.blocks * l.block_size)/power(1024,2)) size_mb
|
||||
, l.fal
|
||||
, l.creator
|
||||
, l.registrar
|
||||
, TO_CHAR(l.completion_time,'DD-MON-YY HH24:MI:SS') completion_time
|
||||
, LPAD(FLOOR(l.completion_time-l.next_time) ,2) || 'd '
|
||||
|| LPAD(FLOOR(MOD((l.completion_time-l.next_time) ,1) * 24 ),2) || 'h '
|
||||
|| LPAD(FLOOR(MOD((l.completion_time-l.next_time)*24 ,1) * 60 ),2) || 'm '
|
||||
|| LPAD(FLOOR(MOD((l.completion_time-l.next_time)*24*60,1) * 60 ),2) || 's' delay_in_shipping
|
||||
from v$archived_log l
|
||||
WHERE 1=1
|
||||
AND l.dest_id = 1
|
||||
AND l.first_time > sysdate - (&&HOURS/24)
|
||||
AND (l.completion_time-l.next_time) * 24 * 60 > &&LagMinutes
|
||||
order by l.first_time
|
||||
;
|
||||
|
||||
|
||||
|
||||
|
||||
@@footer
|
||||
Reference in New Issue
Block a user