Env Details:-
Primary DB Version: 19.15
Env : RAC 2 node Exadata
GI: 19.15.0.0
OS: OEL 7
Standby DB Version : 19.15
Env : Standalone DB on ODA
GI: 19.15.0.0
OS: OEL 7
Scenario: – For one of my customers, there was a requirement to change compatible parameter in both primary and standby database. The customer went through a database upgrade (12c to 19c) activity and had GRP (Guaranteed Restore Point) in the database. The GRP was kept for a week post DB upgrade to make sure there is in case of any requirement Database can fall back to its old version. Now after a week, once GRP was dropped, we had to set compatible parameter to 19.0.0 in both primary and standby database. Following are the steps that I performed to achieve this.
Steps:-
First make sure there is no log gap between primary & Standby Database
| SQL> SELECT ARCH.THREAD# “Thread”, ARCH.SEQUENCE# “Last Sequence Received”, 2 APPL.SEQUENCE# “Last Sequence Applied”, (ARCH.SEQUENCE# – APPL.SEQUENCE#) “Difference” 3 FROM 4 (SELECT THREAD# ,SEQUENCE# FROM V$ARCHIVED_LOG WHERE (THREAD#,FIRST_TIME ) IN 5 (SELECT THREAD#,MAX(FIRST_TIME) FROM V$ARCHIVED_LOG GROUP BY THREAD#)) ARCH, 6 (SELECT THREAD# ,SEQUENCE# FROM V$LOG_HISTORY WHERE (THREAD#,FIRST_TIME ) IN 7 (SELECT THREAD#,MAX(FIRST_TIME) FROM V$LOG_HISTORY GROUP BY THREAD#)) APPL 8 WHERE 9 ARCH.THREAD# = APPL.THREAD# 10 ORDER BY 1; Thread Last Sequence Received Last Sequence Applied Difference ———- ———————- ——————— ———- 1 97989 97989 0 2 90142 90142 0 |
Current compatible set in database
| SQL> show parameter compatible NAME TYPE VALUE ———————————— ———– —————————— compatible string 12.1.0.2.0 |
Now change the compatible parameter in standby database then do it on primary database.
On Standby DB:-
STANDBYDB_SQL> alter system set compatible=’19.0.0′ scope=spfile ;
After changing we need to bounce the database to get it in effect, so cancel the MRP apply.
STANDBYDB_SQL> alter database recover managed standby database cancel;
Now stop and start the standby database.
[oracle@standbydb]$ srvctl stop database -d $ORACLE_UNQNAME
[oracle@standbydb]$ srvctl start database -d $ORACLE_UNQNAME -o mount
Now start the MRP process to apply the redologs in standby db.
STANDBYDB_SQL> alter database recover managed standby database disconnect from session;
On Primary DB:-
Login to, primary database and change the compatible parameter.
PRIMARYDB_SQL> alter system set compatible=’19.0.0′ scope=spfile sid=’*’;
[oracle@primarydb]$ srvctl stop database -d $ORACLE_UNQNAME
[oracle@primarydb]$ srvctl start database -d $ORACLE_UNQNAME


Leave a Reply