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