Hi everyone,
I have an issue with one of the dataguard servers here.
Basically, looking at the v$managed_standby, it is still applying the latest archived log sequence.
However when I checked for unapplied archived log from v$archived_log, I found at least 1 sequence# which was quite old (around a few days old) not applied.
my query to check this is:
SELECT sequence# from v$archived_log where applied = 'NO';
result:
SEQUENCE#
---------
40154
40546
with a different query I found an interesting result
select sequence#, recid, stamp, status, applied from v$archived_log where sequence# in (40154, 40546);
result:
SEQUENCE# RECID STAMP S APP
--------- ---------- ---------- - ---
40154 8093 777156019 D NO
40154 8095 777156053 D YES
40546 8486 777673729 D NO
40546 8487 777673734 D YES
At the time I ran this query, the v$managed_standby are as follow:
select process, status, sequence# from v$managed_standby;
result:
PROCESS STATUS SEQUENCE#
--------- ------------ ----------
ARCH CLOSING 40562
ARCH CLOSING 40557
MRP0 APPLYING_LOG 40563
RFS IDLE 0
RFS IDLE 40563
A simple solution to get those un-applied archived log to be applied is to restart the standby database instance.
Another finding from the production database:
select recid, stamp, sequence#, creator, registrar, standby_dest from v$archived_log where sequence# in (40154, 40546);
result:
RECID STAMP SEQUENCE# CREATOR REGISTR STA
------ ---------- ---------- ------- ------- ---
45446 777156011 40154 ARCH ARCH NO
45447 777156017 40154 LGWR LGWR YES
45450 777156051 40154 ARCH ARCH YES
46231 777673709 40546 ARCH ARCH NO
46232 777673728 40546 LGWR LGWR YES
46233 777673733 40546 ARCH ARCH YES
The question is of course, why is this happening?
Can this be prevented?
Thank you,
Adhika