Missing row in GV$RECOVERY_PROGRESS

From: Andy Klock <andy_at_oracledepot.com>
Date: Wed, 5 Feb 2020 14:57:15 -0500
Message-ID: <CADo_RaOyBRxL+CmgVfiErWGNjxBQJFQTa8E9Y1xucrpyoUFGsA_at_mail.gmail.com>



Hi all, I need a way to determine the Apply Lag. I've done this for as long as I can remember by polling v$dataguard_stats. The issue that recently came up was that during times that we have a transport lag, hitting v$dataguard_stats is painfully slow, doing tons of log file sequential reads.

So, my great idea was to just select from GV$RECOVERY_PROGRESS instead and use the "Standby Apply Lag" row. Seemed to work like a charm and did not fall victim of scanning redo.

However, in our test database (which is 18c) that row does not exist for some reason. According to the docs:

https://docs.oracle.com/en/database/oracle/oracle-database/18/refrn/V-RECOVERY_PROGRESS.html#GUID-B200FEC9-574F-4636-8DA6-2A560369760E

And this note:

V$RECOVERY_PROGRESS - A Complete Reference (Doc ID 2084505.1)

it should still exist. Maybe? We probably are set up to use multi instance apply, but I think the row is still valid unless I'm misunderstanding something.

SQL> select banner_full from v$version;

BANNER_FULL



Oracle Database 18c Enterprise Edition Release 18.0.0.0.0 - Production Version 18.5.0.0.0

SQL> select start_time,item,sofar from gv$recovery_progress;

START_TIME        ITEM                                  SOFAR

----------------- -------------------------------- ----------
20200110 00:09:26 Active Apply Rate 9584 20200110 00:09:26 Average Apply Rate 9240 20200110 00:09:26 Maximum Apply Rate 828483 20200110 00:09:26 Redo Applied 20717221 20200110 00:09:26 Recovery ID 0 20200110 00:09:26 Last Applied Redo 0 20200110 00:09:26 Active Time 2137563 20200110 00:09:26 Elapsed Time 2295692

8 rows selected.

Any ideas?

Thanks!

Andy K

--

http://www.freelists.org/webpage/oracle-l Received on Wed Feb 05 2020 - 20:57:15 CET

Original text of this message