Вы находитесь на странице: 1из 5

Monitor Standby Log Apply Elapsed Time

======================================
Here s the query I use to get the log apply elapse time:
set linesize 80
select b.lhseq sequence#, b.lhtsm fromtime, a.lhtsm totime,
((to_date(a.lhtsm,'MM/DD/RR HH24:MI:SS') to_date(b.lhtsm,'MM/DD/RR HH24:MI:SS')) * 1440) minutes_to_apply
from sys.x$kcclh a, sys.x$kcclh b
where a.lhrid = b.lhrid + 1
order by a.lhrid
;
Sample output:
SEQUENCE#
--------97077
97078
97079
97080
97081
97082
97083
97084
97085
97086

FROMTIME
------------------09/18/2008 03:28:32
09/18/2008 03:43:31
09/18/2008 03:58:31
09/18/2008 04:13:31
09/18/2008 04:28:31
09/18/2008 04:43:33
09/18/2008 04:58:33
09/18/2008 05:13:36
09/18/2008 05:28:33
09/18/2008 05:43:31

TOTIME
MINUTES_TO_APPLY
------------------- ---------------09/18/2008 03:43:31
14.9833333
09/18/2008 03:58:31
15
09/18/2008 04:13:31
15
09/18/2008 04:28:31
15
09/18/2008 04:43:33
15.0333333
09/18/2008 04:58:33
15
09/18/2008 05:13:36
15.05
09/18/2008 05:28:33
14.95
09/18/2008 05:43:31
14.9666667
09/18/2008 05:58:31
15

set linesize 140


col min_log_date fora30
col max_log_date fora30
col max_log_apply_duration for a30
col min_log_apply_duration for a30
col avg_log_apply_duration for a30
select min(lhlot) min_log_date, max(lhlot) max_log_date,
numtodsinterval(max(to_number(a_lhtsm - b_lhtsm)),'DAY') max_log_apply_du
ration,
numtodsinterval(min(to_number(a_lhtsm - b_lhtsm)),'DAY') min_log_apply_du
ration,
numtodsinterval(avg(to_number(a_lhtsm - b_lhtsm)),'DAY') avg_log_apply_du
ration
from (
select a.lhlot lhlot,
to_date(a.lhtsm,'MM/DD/RR HH24:MI:SS') a_lhtsm,
to_date(b.lhtsm,'MM/DD/RR HH24:MI:SS') b_lhtsm,
a.lhrid
from sys.x$kcclh a, sys.x$kcclh b
where a.lhrid = b.lhrid + 1
)
order by lhrid;
Here s a query to show the min, max and average elapse time:
set linesize 140
col min_log_date newline
col max_log_date newline

col max_log_apply_duration for a30 newline


col min_log_apply_duration for a30 newline
col avg_log_apply_duration for a30 newline
select min(lhlot) min_log_date, max(lhlot) max_log_date,
numtodsinterval(max(to_number(a_lhtsm - b_lhtsm)),'DAY') max_log_apply_du
ration,
numtodsinterval(min(to_number(a_lhtsm - b_lhtsm)),'DAY') min_log_apply_du
ration,
numtodsinterval(avg(to_number(a_lhtsm - b_lhtsm)),'DAY') avg_log_apply_du
ration
from (
select a.lhlot lhlot,
to_date(a.lhtsm,'MM/DD/RR HH24:MI:SS') a_lhtsm,
to_date(b.lhtsm,'MM/DD/RR HH24:MI:SS') b_lhtsm,
a.lhrid
from sys.x$kcclh a, sys.x$kcclh b
where a.lhrid = b.lhrid + 1
)
order by lhrid;
Sample output:
MIN_LOG_DATE
-------------------MAX_LOG_DATE
-------------------MAX_LOG_APPLY_DURATION
-----------------------------MIN_LOG_APPLY_DURATION
-----------------------------AVG_LOG_APPLY_DURATION
-----------------------------09/18/2008 04:28:30
10/21/2008 15:06:56
+000000000 04:16:55.999999999
+000000000 00:00:05.999999999
+000000000 00:11:47.666911225
The following query shows logs that took over 30 minutes to apply:
select a.lhseq, b.lhtsm fromtime, a.lhtsm totime,
((to_date(a.lhtsm,'MM/DD/RR HH24:MI:SS') to_date(b.lhtsm,'MM/DD/RR HH24:MI:SS')) * 1440) minutes_to_apply
from sys.x$kcclh a, sys.x$kcclh b
where to_date(a.lhlot,'MM/DD/RR HH24:MI:SS') > sysdate - 60
and a.lhrid = b.lhrid + 1
and ((to_date(a.lhtsm,'MM/DD/RR HH24:MI:SS') to_date(b.lhtsm,'MM/DD/RR HH24:MI:SS')) * 1440) > 30
order by a.lhrid
;
Sample output:
LHSEQ
-----98276
98278
98280
98294
98297

FROMTIME
-------------------09/28/2008 08:04:41
09/28/2008 11:25:24
09/28/2008 12:15:35
09/28/2008 14:33:29
09/28/2008 15:51:18

TOTIME
MINUTES_TO_APPLY
-------------------- ---------------09/28/2008 11:04:41
180
09/28/2008 12:07:06
41.7
09/28/2008 14:23:01
127.433333
09/28/2008 15:13:33
40.0666667
09/28/2008 16:31:42
40.4

98423
98533
98662
98663
98664
98669
100220
100422
100537

09/28/2008
09/28/2008
09/29/2008
09/29/2008
09/29/2008
09/29/2008
10/13/2008
10/15/2008
10/16/2008

19:36:32
22:16:22
02:29:11
03:37:19
04:13:37
05:54:33
07:50:41
06:10:58
08:40:24

09/28/2008
09/28/2008
09/29/2008
09/29/2008
09/29/2008
09/29/2008
10/13/2008
10/15/2008
10/16/2008

20:20:56
22:54:11
03:37:19
04:13:37
04:44:14
07:19:25
08:50:27
10:27:54
10:05:32

44.4
37.8166667
68.1333333
36.3
30.6166667
84.8666667
59.7666667
256.933333
85.1333333

set lines 1000 pages 60


column SizeM format 9,999.9
column "MB/sec" format 9,999.99
column TIMESTAMP format A30
column "ArchTime" format A30
column "Diff(sec)" format 999,999.99
column "KB/sec" format 999,999.99
column "Lag(sec)" format 999,999.99
select to_char(TIMESTAMP,'MON DD, YYYY HH:MI:SS AM') TIMESTAMP,
to_char(completion_time,'MON DD, YYYY HH:MI:SS AM') "ArchTime",
SEQUENCE#,
round((blocks*block_size)/(1024*1024),1) "SizeM",
round((TIMESTAMP-lag(TIMESTAMP,1,TIMESTAMP) OVER (order by TIMESTAMP))*24*60*60,
1) "Diff(sec)",
round((blocks*block_size)/1024/ decode(((TIMESTAMP-lag(TIMESTAMP,1,TIMESTAMP) OV
ER (order by TIMESTAMP))*24*60*60),0,1,
(TIMESTAMP-lag(TIMESTAMP,1,TIMESTAMP) OVER (order by TIMESTAMP))*24*60*60),1) "K
B/sec",
round((blocks*block_size)/(1024*1024)/ decode(((TIMESTAMP-lag(TIMESTAMP,1,TIMEST
AMP) OVER (order by TIMESTAMP))*24*60*60),0,1,
(TIMESTAMP-lag(TIMESTAMP,1,TIMESTAMP) OVER (order by TIMESTAMP))*24*60*60),3) "M
B/sec",
round(((lead(TIMESTAMP,1,TIMESTAMP) over (order by TIMESTAMP))-completion_time)*
24*60*60,1) "Lag(sec)"
from v$archived_log a, v$dataguard_status dgs
where a.name = replace(dgs.MESSAGE,'Media Recovery Log ','')
and dgs.FACILITY = 'Log Apply Services'
order by TIMESTAMP;
TIMESTAMP
ArchTime
SEQUENCE#
Size
M Diff(sec)
KB/sec
MB/sec
Lag(sec)
------------------------------ ------------------------------ ---------- ------- ----------- ----------- --------- ----------JUN 02, 2013 05:34:58 PM
JUN 02, 2013 07:44:46 AM
16803
208.
9
.00 213,880.00
208.87 35,645.00
JUN 02, 2013 05:38:51 PM
JUN 02, 2013 07:48:44 AM
16804
202.
5
233.00
889.70
.87 35,794.00
JUN 02, 2013 05:45:18 PM
JUN 02, 2013 07:52:32 AM
16805
203.
3
387.00
537.90
.53 35,999.00
JUN 02, 2013 05:52:31 PM
JUN 02, 2013 07:56:24 AM
16806
205.
1
433.00
485.00
.47 36,436.00
JUN 02, 2013 06:03:40 PM
JUN 02, 2013 08:00:09 AM
16807
202.
9
669.00
310.60
.30 36,726.00
JUN 02, 2013 06:12:15 PM
JUN 02, 2013 08:03:49 AM
16808
203.
7
515.00
405.00
.40 37,034.00
JUN 02, 2013 06:21:03 PM
JUN 02, 2013 08:07:32 AM
16809
202.

3
JUN
1
JUN
2
JUN
6
JUN
8
JUN
8
JUN
0
JUN
5
JUN
2
JUN
3
JUN
1
JUN
8
JUN
0
JUN
7
JUN
1
JUN
4
JUN
8
JUN
6
JUN
3
JUN
0
JUN
5
JUN
8
JUN
0
JUN
2
JUN
7
JUN
0
JUN
6
JUN
7
JUN
6
JUN
8
JUN

528.00
392.30
02, 2013 06:30:39 PM
576.00
361.00
02, 2013 06:40:26 PM
587.00
356.30
02, 2013 06:50:30 PM
604.00
341.80
02, 2013 07:00:21 PM
591.00
349.70
02, 2013 07:09:56 PM
575.00
364.70
02, 2013 07:19:43 PM
587.00
354.10
02, 2013 07:29:30 PM
587.00
356.70
02, 2013 07:39:33 PM
603.00
345.00
02, 2013 07:49:25 PM
592.00
353.40
02, 2013 07:59:07 PM
582.00
360.80
02, 2013 08:09:06 PM
599.00
346.70
02, 2013 08:18:51 PM
585.00
353.60
02, 2013 08:28:22 PM
571.00
365.30
02, 2013 08:38:13 PM
591.00
358.80
02, 2013 08:48:18 PM
605.00
344.30
02, 2013 08:59:28 PM
670.00
310.00
02, 2013 09:09:02 PM
574.00
366.70
02, 2013 09:19:11 PM
609.00
340.20
02, 2013 09:28:36 PM
565.00
368.00
02, 2013 09:37:54 PM
558.00
373.40
02, 2013 09:47:18 PM
564.00
368.20
02, 2013 09:56:35 PM
557.00
375.00
02, 2013 10:06:15 PM
580.00
357.00
02, 2013 10:16:05 PM
590.00
355.30
02, 2013 10:26:06 PM
601.00
344.20
02, 2013 10:36:16 PM
610.00
345.20
02, 2013 10:46:09 PM
593.00
350.00
02, 2013 10:55:28 PM
559.00
373.00
02, 2013 11:04:55 PM
567.00
369.90
02, 2013 11:14:59 PM

.38 37,387.00
JUN 02, 2013 08:11:20
.35 37,746.00
JUN 02, 2013 08:15:09
.35 38,121.00
JUN 02, 2013 08:18:55
.33 38,486.00
JUN 02, 2013 08:22:37
.34 38,839.00
JUN 02, 2013 08:26:28
.36 39,195.00
JUN 02, 2013 08:30:14
.35 39,556.00
JUN 02, 2013 08:34:02
.35 39,931.00
JUN 02, 2013 08:37:48
.34 40,297.00
JUN 02, 2013 08:41:36
.35 40,651.00
JUN 02, 2013 08:45:30
.35 41,016.00
JUN 02, 2013 08:49:22
.34 41,369.00
JUN 02, 2013 08:53:11
.35 41,711.00
JUN 02, 2013 08:56:56
.36 42,077.00
JUN 02, 2013 09:00:39
.35 42,459.00
JUN 02, 2013 09:04:27
.34 42,901.00
JUN 02, 2013 09:08:13
.30 43,249.00
JUN 02, 2013 09:12:13
.36 43,618.00
JUN 02, 2013 09:15:59
.33 43,957.00
JUN 02, 2013 09:19:47
.36 44,287.00
JUN 02, 2013 09:23:33
.37 44,625.00
JUN 02, 2013 09:27:22
.36 44,953.00
JUN 02, 2013 09:31:07
.37 45,308.00
JUN 02, 2013 09:34:53
.35 45,672.00
JUN 02, 2013 09:38:41
.35 46,045.00
JUN 02, 2013 09:42:27
.34 46,429.00
JUN 02, 2013 09:46:18
.34 46,791.00
JUN 02, 2013 09:50:07
.34 47,121.00
JUN 02, 2013 09:53:55
.36 47,460.00
JUN 02, 2013 09:57:44
.36 47,835.00
JUN 02, 2013 10:01:29

AM

16810

203.

AM

16811

204.

AM

16812

201.

AM

16813

201.

AM

16814

204.

AM

16815

203.

AM

16816

204.

AM

16817

203.

AM

16818

204.

AM

16819

205.

AM

16820

202.

AM

16821

202.

AM

16822

203.

AM

16823

207.

AM

16824

203.

AM

16825

202.

AM

16826

205.

AM

16827

202.

AM

16828

203.

AM

16829

203.

AM

16830

202.

AM

16831

204.

AM

16832

202.

AM

16833

204.

AM

16834

202.

AM

16835

205.

AM

16836

202.

AM

16837

203.

AM

16838

204.

AM

16839

201.

8
604.00
342.20
JUN 02, 2013 11:26:36 PM
8
697.00
296.50
JUN 02, 2013 11:58:11 PM
6
1,895.00
110.00

.33 48,307.00
JUN 02, 2013 10:05:17 AM
.29 49,974.00
JUN 02, 2013 10:09:12 AM
.11 49,739.00

SELECT EVENT, TOTAL_WAITS,


ROUND(TIME_WAITED/100) "TIME(S)",
AVERAGE_WAIT*10 "AVG(MS)",
TO_CHAR(SYSDATE, 'DD-MON-YYYY HH:MI:SS') TIME
FROM V$SYSTEM_EVENT ;
SELECT OPEN_COUNT, CLOSE_COUNT, WRITE_COUNT, MINIMUM_WRITE,
MAXIMUM_WRITE, TOTAL_WRITE, LOGS_SKIPPED,TERMINATIONS
FROM X$KCRRASTATS WHERE TOTAL_WRITE > 0;

16840

201.

16841

203.

Вам также может понравиться