Re: Why the SQL of checking gap num is wrong on oracle data guard primary (primary is RAC and physical standby is single instance)?
Date: Thu, 10 Nov 2022 09:25:44 -0500
Message-ID: <1bc76459-dc38-fe83-b868-675aa6beee1a_at_gmail.com>
On 11/9/22 20:38, Quanwen Zhao wrote:
> Hello listeners :-),
>
> Why the SQL of checking gap num is wrong on oracle data guard primary
> (primary is RAC and physical standby is single instance)?
>
> GAP_STATUS PRIMARY_MAXSEQ# STANDBY_MAXSEQ# GAP_NUMS
> ------------------- ------------------------------
> ------------------------------ ------------------
> NO GAP 2163678 1262072
> 901606
> NO GAP 1262073 1262073
> 0
>
> The following is my SQL statement:
>
> SELECT D.INST_ID,
> D.DB_UNIQUE_NAME,
> D.DEST_NAME,
> D.STATUS,
> D.GAP_STATUS TRANS_GAP,
> C.PRIMARY_SEQ,
> C.STANDBY_SEQ,
> C.APPLIED_GAP
> FROM (SELECT A.INST_ID,
> B.LOG_SEQUENCE PRIMARY_SEQ,
> A.LOG_SEQUENCE STANDBY_SEQ,
> B.LOG_SEQUENCE - A.LOG_SEQUENCE APPLIED_GAP
> FROM (SELECT INST_ID,
> MAX(DECODE(GAP_STATUS, 'NO GAP', APPLIED_SEQ#+1,
> 'LOG SWITCH GAP', APPLIED_SEQ#, 'UNRESOLVABLE GAP', APPLIED_SEQ#,
> 'LOCALLY UNRESOLVABLE GAP', APPLIED_SEQ#)) LOG_SEQUENCE
> FROM GV$ARCHIVE_DEST_STATUS
> WHERE TYPE = 'PHYSICAL'
> AND STATUS = 'VALID'
> GROUP BY INST_ID
> ) A,
> (SELECT INST_ID,
> MAX(LOG_SEQUENCE) LOG_SEQUENCE
> FROM GV$ARCHIVE_DEST
> WHERE TARGET = 'PRIMARY'
> AND STATUS = 'VALID'
> GROUP BY INST_ID
> ) B
> WHERE A.INST_ID = B.INST_ID
> ) C,
> (SELECT INST_ID,
> DB_UNIQUE_NAME,
> DEST_ID,
> DEST_NAME,
> STATUS,
> GAP_STATUS
> FROM GV$ARCHIVE_DEST_STATUS
> WHERE STATUS = 'VALID'
> AND TYPE = 'PHYSICAL'
> ) D
> WHERE C.INST_ID = D.INST_ID;
>
> Very appreciated if any help, thanks for advance!
>
> Best Regards
> Quanwen Zhao
This is the case of the wrong tool being used. I usually write a little Python script to detect the gaps on the disk. Complex queries like this one are definitely an overkill.
Regards
-- Mladen Gogala Database Consultant Tel: (347) 321-1217 https://dbwhisperer.wordpress.com -- http://www.freelists.org/webpage/oracle-lReceived on Thu Nov 10 2022 - 15:25:44 CET