1. Check for GAP on standby
2. Check redo received on standby
3. Check redo applied on standby
Query On Primary:
Code: Select all
SELECT thread#,
MAX(sequence#) "Last Primary Seq Generated"
FROM v$archived_log
WHERE first_time BETWEEN (sysdate-1) AND (sysdate+1)
GROUP BY thread#
ORDER BY 1;
Code: Select all
THREAD# Last Primary Seq Generated
---------- --------------------------
1 23794
2 18077
3 3241
Code: Select all
SELECT ARCH.THREAD# "Thread",
ARCH.SEQUENCE# "Last Sequence Received",
APPL.SEQUENCE# "Last Sequence Applied",
(ARCH.SEQUENCE# - APPL.SEQUENCE#) "Difference"
FROM
(SELECT THREAD# ,
SEQUENCE#
FROM V$ARCHIVED_LOG
WHERE (THREAD#,FIRST_TIME ) IN
(SELECT THREAD#,MAX(FIRST_TIME) FROM V$ARCHIVED_LOG GROUP BY THREAD#
)
) ARCH,
(SELECT THREAD# ,
SEQUENCE#
FROM V$LOG_HISTORY
WHERE (THREAD#,FIRST_TIME ) IN
(SELECT THREAD#,MAX(FIRST_TIME) FROM V$LOG_HISTORY GROUP BY THREAD#
)
) APPL
WHERE ARCH.THREAD# = APPL.THREAD#
ORDER BY 1;
Code: Select all
Thread Last Sequence Received Last Sequence Applied Difference
---------- ---------------------- --------------------- ----------
1 23794 23794 0
1 23794 23794 0
1 23794 23794 0
2 18077 18077 0
3 3241 3241 0
3 3241 3241 0
Verify that sequence received on standby has been applied (Last Sequence Applied). The difference should be '0'.
On Standby:
Code: Select all
SELECT THREAD#, LOW_SEQUENCE#, HIGH_SEQUENCE# FROM V$ARCHIVE_GAP;
Code: Select all
no rows selected