Recently we got error after upgrade from 12c to 19c. compatible parameter not set to 19c on physical standby database , Due to this after applying MRP we got error.
Error : The compatibility version in redo log file header 19.0.0.0.0 exceeded the one currently supported on this standby 12.1.0.2.0.
2021-09-19T17:24:47.440414+05:30
rfs (PID:5459): Opened log for T-1.S-302 dbid 912183804 branch 1081693119
rfs (PID:5459): The compatibility version in redo log file header 19.0.0.0.0 exceeded the one currently supported on this standby 12.1.0.2.0.
2021-09-19T17:25:31.765108+05:30
Deleted Oracle managed file /u01/app/oracle/fast_recovery_area/ORCL12CDR/archivelog/2021_09_19/o1_mf_1_302_jng987fp_.arc
2021-09-19T17:30:49.929833+05:30
Deleted Oracle managed file /u01/app/oracle/fast_recovery_area/ORCL12CDR/archivelog/2021_09_19/o1_mf_0_0_jng9mkwx_.arc
2021-09-19T17:30:50.019755+05:30
rfs (PID:5816): Primary database is in MAXIMUM PERFORMANCE mode
rfs (PID:5816): No SRLs available for T-1
2021-09-19T17:30:50.068208+05:30
Scenario :
SQL> show parameter compatible
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
compatible string 12.1.0.2.0
noncdb_compatible boolean FALSE
SQL> alter system set compatible='19.0.0' scope=spfile;
shudown standby database
startup mount
SQL> select process, thread#, sequence#, status from v$managed_standby;
PROCESS THREAD# SEQUENCE# STATUS
--------- ---------- ---------- ------------
ARCH 0 0 CONNECTED
DGRD 0 0 ALLOCATED
DGRD 0 0 ALLOCATED
ARCH 0 0 CONNECTED
ARCH 1 110 CLOSING
ARCH 0 0 CONNECTED
RFS 1 302 IDLE
7 rows selected.
- Apply MRP on standby database
SQL> alter database recover managed standby database disconnect from session;
Database altered.
SQL> 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,
2 3 4 (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
5 WHERE
6 ARCH.THREAD# = APPL.THREAD#
7 ;
Thread Last Sequence Received Last Sequence Applied Difference
---------- ---------------------- --------------------- ----------
1 196 110 86
SQL> /
Thread Last Sequence Received Last Sequence Applied Difference
---------- ---------------------- --------------------- ----------
1 301 199 102
SQL> /
Thread Last Sequence Received Last Sequence Applied Difference
---------- ---------------------- --------------------- ----------
1 302 302 0
SQL>
SQL> select process, thread#, sequence#, status from v$managed_standby;
PROCESS THREAD# SEQUENCE# STATUS
--------- ---------- ---------- ------------
ARCH 1 298 CLOSING
DGRD 0 0 ALLOCATED
DGRD 0 0 ALLOCATED
ARCH 0 0 CONNECTED
ARCH 1 110 CLOSING
ARCH 1 301 CLOSING
MRP0 1 303 APPLYING_LOG
RFS 1 303 IDLE
RFS 1 0 IDLE
RFS 0 0 IDLE
RFS 0 0 IDLE
PROCESS THREAD# SEQUENCE# STATUS
--------- ---------- ---------- ------------
RFS 0 0 IDLE
12 rows selected.
SQL>
No comments:
Post a Comment