Updating the Database’s COMPATIBLE parameter and ASM Diskgroups’ COMPATIBLE.ASM and COMPATIBLE.RDBMS to 19.0.0.0

In this part of the series, we will update the database’s COMPATIBLE parameter ASM Diskgroups’ COMPATIBLE.ASM and COMPATIBLE.RDBMS to 19.0.0.0. This is the final part of a 7-part series that includes:


Part 1. Upgrade Oracle Grid Infrastructure on the RAC Cluster from 18c to 19c


Part 2. Upgrading the Oracle Grid Infrastructure on the Physical Standby from 18c to 19c


Part 3. Upgrade Oracle RAC Database from 18c to 19c


Part 4. Upgrade Oracle Physical Standby Database from 18c to 19c


Part 5. Installing the Latest Oracle 19c Update Patches – Opatch/OJVM/GI/DB/JDK on Oracle 19c RAC on Linux


Part 6. Installing the Latest Oracle 19c Update Patches – Opatch/OJVM/GI/DB/JDK on Oracle 19c Standby on Linux


Part 7. Updating the Database’s COMPATIBLE parameter and ASM Diskgroups’ COMPATIBLE.ASM and COMPATIBLE.RDBMS to 19.0.0.0



Updating the Database COMPATIBLE parameter and the ASM Diskgroups’ COMPATIBLE.ASM and COMPATIBLE.RDBMS attributes.


Database COMPATIBLE parameters can be set to the current database software version or lower. It sets the features available for that version.

COMPATIBLE.ASM determines the minimum software version for the ASM instance. And COMPATIBLE.RDBMS determines the minimum software version for the database instance.


WARNING 1: You can set the compatibilities higher but you can’t go back down so make sure this is what you need. If you plan to downgrade the database at a later time, do not change this parameter.


WARNING 2: When you change compatibilities settings, change it in the database parameter first before changing it for the ASM Diskgroups. The database will not start if the database’s COMPATIBLE parameter is not equal to or higher than all of the ASM diskgroups’ COMPATIBLE.RDBMS properties in which the database is a client of.


WARNING 3: If you have Standby databases, you must change database COMPATIBLE parameters on all the Standby databases before changing it on the Primary.


WARNING 4: Always back up your databases before making any changes.


We will be updating in the following order:


1. Update Standby Database’s COMPATIBLE parameter to 19.0.0.0.

2. Update all of Standby ASM Diskgroups’ COMPATIBLE.ASM and COMPATIBLE.RDBMS to 19.0.0.0.

3. Update Primary Database’s COMPATIBLE parameter to 19.0.0.0.

4. Update all of Primary ASM Diskgroups’ COMPATIBLE.ASM and COMPATIBLE.RDBMS to 19.0.0.0.


1. Update Standby Database’s COMPATIBLE parameter to 19.0.0.0.



[oracle@stdby1 ~]$ sqlplus / as sysdba
SQL> set lines 150
SQL> show parameter instance_name

NAME                                 TYPE                              VALUE
------------------------------------ --------------------------------- ------------------------------
instance_name                        string                            PRODDR

SQL> show parameter compatible

NAME                                 TYPE                              VALUE
------------------------------------ --------------------------------- ------------------------------
compatible                           string                            18.0.0.0

SQL> alter system set compatible='19.0.0.0' scope=spfile sid='*';

System altered.

Restart the database to allow the new settings to go into effect.



[oracle@stdby1 ~]$ srvctl stop db -d PRODDR
[oracle@stdby1 ~]$ srvctl start db -d PRODDR

Verify the new compatible parameter on Standby Database.


SQL> set lines 150
SQL> show parameter compatible

NAME                                 TYPE                              VALUE
------------------------------------ --------------------------------- ------------------------------
compatible                           string                            19.0.0.0

2. Update all of Standby ASM Diskgroups’ COMPATIBLE.ASM and COMPATIBLE.RDBMS to 19.0.0.0.


2.1 As grid user, log into ASM and check the current attribute settings.


[grid@stdby1 ~]$ sqlplus / as sysasm
SQL> set lines 200 pages 9999
SQL> col gname for a25
SQL> col attribute for a30
SQL> col value for a20

SQL> SELECT a.group_number, d.name gname, a.name attribute, value FROM v$asm_attribute a, v$asm_diskgroup d
  2  where a.name in ('compatible.asm','compatible.rdbms')
  3  and a.group_number=d.group_number
  4  ORDER BY a.group_number, gname;

GROUP_NUMBER GNAME                     ATTRIBUTE                      VALUE
------------ ------------------------- ------------------------------ --------------------
           1 DATA                      compatible.asm                 18.0.0.0.0
           1 DATA                      compatible.rdbms               18.0.0.0.0
           2 FRA                       compatible.asm                 18.0.0.0.0
           2 FRA                       compatible.rdbms               18.0.0.0.0

2.2 Update attribute settings to 19.0.0.0.


SQL> alter diskgroup DATA set attribute 'compatible.asm' = '19.0.0.0.0';

Diskgroup altered.

SQL> alter diskgroup DATA set attribute 'compatible.rdbms' = '19.0.0.0.0';

Diskgroup altered.

SQL> alter diskgroup FRA set attribute 'compatible.asm' = '19.0.0.0.0';

Diskgroup altered.

SQL> alter diskgroup FRA set attribute 'compatible.rdbms' = '19.0.0.0.0';

Diskgroup altered.

2.3 Verify new attribute settings.


SQL> SELECT a.group_number, d.name gname, a.name attribute, value FROM v$asm_attribute a, v$asm_diskgroup d
  2  where a.name in ('compatible.asm','compatible.rdbms')
  3  and a.group_number=d.group_number
  4  ORDER BY a.group_number, gname;

GROUP_NUMBER GNAME                     ATTRIBUTE                      VALUE
------------ ------------------------- ------------------------------ --------------------
           1 DATA                      compatible.asm                 19.0.0.0.0
           1 DATA                      compatible.rdbms               19.0.0.0.0
           2 FRA                       compatible.asm                 19.0.0.0.0
           2 FRA                       compatible.rdbms               19.0.0.0.0

3. Update Primary Database’s COMPATIBLE parameter to 19.0.0.0.


Note: If your Primary is a RAC Database, you only need to perform the update on one of the RAC nodes.



[oracle@rac1 ~]$ sqlplus / as sysdba
SQL> set lines 150
SQL> show parameter instance_name

NAME                                 TYPE                              VALUE
------------------------------------ --------------------------------- ------------------------------
instance_name                        string                            PROD1

SQL> show parameter compatible

NAME                                 TYPE                              VALUE
------------------------------------ --------------------------------- ------------------------------
compatible                           string                            18.0.0.0

SQL> alter system set compatible='19.0.0.0' scope=spfile sid='*';

System altered.

Restart the database to allow the new settings to go into effect.



[oracle@rac1 ~]$ srvctl stop db -d PROD
[oracle@rac1 ~]$ srvctl start db -d PROD

Verify the new compatible parameter on Primary Database.


SQL> set lines 150
SQL> show parameter compatible

NAME                                 TYPE                              VALUE
------------------------------------ --------------------------------- ------------------------------
compatible                           string                            19.0.0.0

3.5 If you have MGMTDB database, you will also need to update its’ COMPATIBLE parameter. You can skip Section 3.5 if you don’t have an MGMTDB database.


As grid user, update the MGMTDB:


[grid@rac1 ~]$ export ORACLE_SID="-MGMTDB"
[grid@rac1 ~]$ sqlplus / as sysdba
SQL> set lines 150
SQL> show parameter instance_name

NAME                                 TYPE                              VALUE
------------------------------------ --------------------------------- ------------------------------
instance_name                        string                            -MGMTDB

SQL> show parameter compatible

NAME                                 TYPE                              VALUE
------------------------------------ --------------------------------- ------------------------------
compatible                           string                            12.2.0.0.0

SQL> alter system set compatible='19.0.0.0' scope=spfile sid='*';

System altered.

SQL> shutdown immediate;
Database closed.
Database dismounted.
ORACLE instance shut down.

SQL> startup
ORACLE instance started.

Total System Global Area 1073740992 bytes
Fixed Size                  9186496 bytes
Variable Size             637534208 bytes
Database Buffers          419430400 bytes
Redo Buffers                7589888 bytes
Database mounted.
Database opened.

SQL> show parameter compatible

NAME                                 TYPE                              VALUE
------------------------------------ --------------------------------- ------------------------------
compatible                           string                            19.0.0.0

4. Update all of Primary ASM Diskgroups’ COMPATIBLE.ASM and COMPATIBLE.RDBMS to 19.0.0.0.


4.1 As grid user, log into ASM and check the current attribute settings.


[grid@rac1 ~]$ sqlplus / as sysasm
SQL> set lines 200 pages 9999
SQL> col gname for a25
SQL> col attribute for a30
SQL> col value for a20

SQL> SELECT a.group_number, d.name gname, a.name attribute, value FROM v$asm_attribute a, v$asm_diskgroup d
  2  where a.name in ('compatible.asm','compatible.rdbms')
  3  and a.group_number=d.group_number
  4  ORDER BY a.group_number, gname;

GROUP_NUMBER GNAME                     ATTRIBUTE                      VALUE
------------ ------------------------- ------------------------------ --------------------
           1 CRS                       compatible.asm                 18.0.0.0.0
           1 CRS                       compatible.rdbms               10.1.0.0.0
           2 DATA                      compatible.asm                 18.0.0.0.0
           2 DATA                      compatible.rdbms               18.0.0.0.0
           3 FRA                       compatible.asm                 18.0.0.0.0
           3 FRA                       compatible.rdbms               18.0.0.0.0

6 rows selected.

4.2 Update attribute settings to 19.0.0.0.


SQL> alter diskgroup CRS set attribute 'compatible.asm' = '19.0.0.0.0';

Diskgroup altered.

SQL> alter diskgroup CRS set attribute 'compatible.rdbms' = '19.0.0.0.0';

Diskgroup altered.

SQL> alter diskgroup DATA set attribute 'compatible.asm' = '19.0.0.0.0';

Diskgroup altered.

SQL> alter diskgroup DATA set attribute 'compatible.rdbms' = '19.0.0.0.0';

Diskgroup altered.

SQL> alter diskgroup FRA set attribute 'compatible.asm' = '19.0.0.0.0';

Diskgroup altered.

SQL> alter diskgroup FRA set attribute 'compatible.rdbms' = '19.0.0.0.0';

Diskgroup altered.

4.3 Verify new attribute settings.


SQL> SELECT a.group_number, d.name gname, a.name attribute, value FROM v$asm_attribute a, v$asm_diskgroup d
  2  where a.name in ('compatible.asm','compatible.rdbms')
  3  and a.group_number=d.group_number
  4  ORDER BY a.group_number, gname;

GROUP_NUMBER GNAME                     ATTRIBUTE                      VALUE
------------ ------------------------- ------------------------------ --------------------
           1 CRS                       compatible.asm                 19.0.0.0.0
           1 CRS                       compatible.rdbms               19.0.0.0.0
           2 DATA                      compatible.asm                 19.0.0.0.0
           2 DATA                      compatible.rdbms               19.0.0.0.0
           3 FRA                       compatible.asm                 19.0.0.0.0
           3 FRA                       compatible.rdbms               19.0.0.0.0

6 rows selected.

4.4 Verify the system is ok by restarting the CRS on both RAC nodes as root user.


Note: Only outputs from rac1 are shown here.


[root@rac1 ~]# /oracle/oraBase/19.0.0/grid/bin/crsctl stop crs
[root@rac1 ~]# /oracle/oraBase/19.0.0/grid/bin/crsctl start crs

[root@rac1 ~]# /oracle/oraBase/19.0.0/grid/bin/crsctl stat res -t
--------------------------------------------------------------------------------
Name           Target  State        Server                   State details
--------------------------------------------------------------------------------
Local Resources
--------------------------------------------------------------------------------
ora.CRS.GHCHKPT.advm
               OFFLINE OFFLINE      rac1              STABLE
               OFFLINE OFFLINE      rac2              STABLE
ora.LISTENER.lsnr
               ONLINE  ONLINE       rac1              STABLE
               ONLINE  ONLINE       rac2              STABLE
ora.chad
               OFFLINE OFFLINE      rac1              STABLE
               OFFLINE OFFLINE      rac2              STABLE
ora.crs.ghchkpt.acfs
               OFFLINE OFFLINE      rac1              STABLE
               OFFLINE OFFLINE      rac2              STABLE
ora.helper
               OFFLINE OFFLINE      rac1              IDLE,STABLE
               OFFLINE OFFLINE      rac2              IDLE,STABLE
ora.net1.network
               ONLINE  ONLINE       rac1              STABLE
               ONLINE  ONLINE       rac2              STABLE
ora.ons
               ONLINE  ONLINE       rac1              STABLE
               ONLINE  ONLINE       rac2              STABLE
ora.proxy_advm
               ONLINE  ONLINE       rac1              STABLE
               ONLINE  ONLINE       rac2              STABLE
--------------------------------------------------------------------------------
Cluster Resources
--------------------------------------------------------------------------------
ora.ASMNET1LSNR_ASM.lsnr(ora.asmgroup)
      1        ONLINE  ONLINE       rac1              STABLE
      2        ONLINE  OFFLINE                        STABLE
      3        ONLINE  ONLINE       rac2              STABLE
ora.CRS.dg(ora.asmgroup)
      1        ONLINE  ONLINE       rac1              STABLE
      2        OFFLINE OFFLINE                        STABLE
      3        ONLINE  ONLINE       rac2              STABLE
ora.DATA.dg(ora.asmgroup)
      1        ONLINE  ONLINE       rac1              STABLE
      2        OFFLINE OFFLINE                        STABLE
      3        ONLINE  ONLINE       rac2              STABLE
ora.FRA.dg(ora.asmgroup)
      1        ONLINE  ONLINE       rac1              STABLE
      2        OFFLINE OFFLINE                        STABLE
      3        ONLINE  ONLINE       rac2              STABLE
ora.LISTENER_SCAN1.lsnr
      1        ONLINE  ONLINE       rac2              STABLE
ora.LISTENER_SCAN2.lsnr
      1        ONLINE  ONLINE       rac1              STABLE
ora.LISTENER_SCAN3.lsnr
      1        ONLINE  ONLINE       rac1              STABLE
ora.MGMTLSNR
      1        ONLINE  ONLINE       rac1              169.254.25.155 10.71
                                                      .41.17,STABLE
ora.asm(ora.asmgroup)
      1        ONLINE  ONLINE       rac1              Started,STABLE
      2        OFFLINE OFFLINE                        STABLE
      3        ONLINE  ONLINE       rac2              Started,STABLE
ora.asmnet1.asmnetwork(ora.asmgroup)
      1        ONLINE  ONLINE       rac1              STABLE
      2        ONLINE  OFFLINE                        STABLE
      3        ONLINE  ONLINE       rac2              STABLE
ora.cvu
      1        ONLINE  ONLINE       rac1              STABLE
ora.mgmtdb
      1        ONLINE  ONLINE       rac1              Open,STABLE
ora.rac1.vip
      1        ONLINE  ONLINE       rac1              STABLE
ora.rac2.vip
      1        ONLINE  ONLINE       rac2              STABLE
ora.prod.cat.svc
      2        ONLINE  ONLINE       rac1              STABLE
ora.prod.db
      1        ONLINE  ONLINE       rac1              Open,HOME=/oracle/or
                                                      aBase/oracle/19.0.0/
                                                      database,STABLE
      2        ONLINE  ONLINE       rac2              Open,HOME=/oracle/or
                                                      aBase/oracle/19.0.0/
                                                      database,STABLE
ora.prod.dog.svc
      2        ONLINE  ONLINE       rac1              STABLE
ora.prod.pig.svc
      1        ONLINE  ONLINE       rac1              STABLE
      2        ONLINE  ONLINE       rac2              STABLE
ora.qosmserver
      1        ONLINE  ONLINE       rac1              STABLE
ora.rhpserver
      1        OFFLINE OFFLINE                        STABLE
ora.scan1.vip
      1        ONLINE  ONLINE       rac2              STABLE
ora.scan2.vip
      1        ONLINE  ONLINE       rac1              STABLE
ora.scan3.vip
      1        ONLINE  ONLINE       rac1              STABLE
--------------------------------------------------------------------------------