How to check the log GAP amount for a Oracle physical stand by database






How to check the log GAP ammount for an Oracle physical stand by database :

column applied_time for a40
set linesize 200
SELECT DB_NAME,  APPLIED_TIME, LOG_ARCHIVED-LOG_APPLIED AMMOUNT_LOG_GAP,
(case when ((APPLIED_TIME is not null and (LOG_ARCHIVED-LOG_APPLIED) is null) or
(APPLIED_TIME is null and (LOG_ARCHIVED-LOG_APPLIED) is not null) or ((LOG_ARCHIVED-LOG_APPLIED) > 0)) then 'Error!! We have Gap on the database!!'
else 'OK!' end) Status
FROM
(
SELECT INSTANCE_NAME DB_NAME
FROM GV$INSTANCE
where INST_ID = 1
),
(
SELECT MAX(SEQUENCE#) LOG_ARCHIVED
FROM V$ARCHIVED_LOG WHERE DEST_ID=1 AND ARCHIVED='YES' and THREAD#=1
),
(
SELECT MAX(SEQUENCE#) LOG_APPLIED
FROM V$ARCHIVED_LOG WHERE DEST_ID=2 AND APPLIED='YES' and THREAD#=1
),
(
SELECT TO_CHAR(MAX(COMPLETION_TIME),'DD-MON-YYYY:HH24:MI') APPLIED_TIME
FROM V$ARCHIVED_LOG WHERE DEST_ID=2 AND APPLIED='YES' and THREAD#=1
)
UNION
SELECT DB_NAME,  APPLIED_TIME, LOG_ARCHIVED-LOG_APPLIED AMMOUNT_LOG_GAP,
(case when ((APPLIED_TIME is not null and (LOG_ARCHIVED-LOG_APPLIED) is null) or
            (APPLIED_TIME is null and (LOG_ARCHIVED-LOG_APPLIED) is not null) or
            ((LOG_ARCHIVED-LOG_APPLIED) > 0))
      then 'Error! Log Gap is '
      else 'OK!'
end) Status
from (
SELECT INSTANCE_NAME DB_NAME
FROM GV$INSTANCE
where INST_ID = 2
),
(
SELECT MAX(SEQUENCE#) LOG_ARCHIVED
FROM V$ARCHIVED_LOG WHERE DEST_ID=1 AND ARCHIVED='YES' and THREAD#=2
),
(
SELECT MAX(SEQUENCE#) LOG_APPLIED
FROM V$ARCHIVED_LOG WHERE DEST_ID=2 AND APPLIED='YES' and THREAD#=2
),
(
SELECT TO_CHAR(MAX(COMPLETION_TIME),'DD-MON/HH24:MI') APPLIED_TIME

FROM V$ARCHIVED_LOG WHERE DEST_ID=2 AND APPLIED='YES' and THREAD#=2);





This is the output when we have no error :

DB_NAME          APPLIED_TIME                             AMMOUNT_LOG_GAP STATUS
----------------         ---------------------------------------- --------------- -------------------------------------
TST                      18-JUL-2016:07:01                                      0 OK!


This is the output when we have  error :


DB_NAME          APPLIED_TIME                             AMMOUNT_LOG_GAP STATUS
---------------- ---------------------------------------- --------------- -------------------------------------
TST              18-JUL-2016:11:10                                      10 Error!! We have Gap on the database!!

Comments