Monday, 4 October 2021

ORA-38880: Cannot advance compatibility from 12.1.0.2.0 to 19.0.0.0.0 due to guaranteed restore points


We recently done manual upgradation from 12c to 19c  after post upgrade  after changing compatible parameter to 19c we still  got error. This is due to restore point was not dropped before pre upgrade. so we shut reverted back compatible parameter to 12c and delete restore point  then change it back to 19c compatible parameter and startup the database server. 

Error

ORA-38880: Cannot advance compatibility from 12.1.0.2.0 to 19.0.0.0.0 due to guaranteed restore points


 Scenario: 


  
 

SQL> shut immediate;

Database closed.

Database dismounted.

ORACLE instance shut down.

SQL> startup

ORACLE instance started.


Total System Global Area 1862269648 bytes

Fixed Size                  9136848 bytes

Variable Size             637534208 bytes

Database Buffers         1207959552 bytes

Redo Buffers                7639040 bytes

ORA-38880: Cannot advance compatibility from 12.1.0.2.0 to 19.0.0.0.0 due to guaranteed restore points


SQL> show parameter compatible;


NAME                                 TYPE                              VALUE

------------------------------------ --------------------------------- ------------------------------

compatible                           string                            19.0.0

noncdb_compatible                    boolean                           FALSE

SQL>  select name from v$restore_point;

 select name from v$restore_point

                  *

ERROR at line 1:

ORA-01507: database not mounted


SQL> shutdown immediate;

ORA-01507: database not mounted


ORACLE instance shut down.

SQL> startup force;

ORACLE instance started.


Total System Global Area 1862269648 bytes

Fixed Size                  9136848 bytes

Variable Size             637534208 bytes

Database Buffers         1207959552 bytes

Redo Buffers                7639040 bytes

ORA-38880: Cannot advance compatibility from 12.1.0.2.0 to 19.0.0.0.0 due to guaranteed restore points


  • Change  compatible parameter to 12.1.0.2.0 then check restore point and delete it.
  • SQL> alter system set compatible="12.1.0.2.0" scope=spfile;


    System altered.


    SQL> startup force;

    ORACLE instance started.


    Total System Global Area 1862269648 bytes

    Fixed Size                  9136848 bytes

    Variable Size             637534208 bytes

    Database Buffers         1207959552 bytes

    Redo Buffers                7639040 bytes

    Database mounted.

    Database opened.


    SQL> select GUARANTEE_FLASHBACK_DATABASE,NAME from v$restore_point;


    GUA NAME

    --- --------------------------------------------------------------------------------------------------------------------------------

    YES BEFORE_UPGRADE_19C


    1 row selected.


    SQL> select flashback_On from v$database;


    FLASHBACK_ON

    ------------------

    RESTORE POINT ONLY


    1 row selected.


    SQL> alter database flashback off;


    Database altered.


    SQL> select flashback_On from v$database;


    FLASHBACK_ON

    ------------------

    RESTORE POINT ONLY


    1 row selected.


    SQL> drop restore point BEFORE_UPGRADE_19C;


    Restore point dropped.


    SQL> select flashback_On from v$database;


    FLASHBACK_ON

    ------------------

    NO


    1 row selected.


    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;


    System altered.


    SQL> shut immediate;

    Database closed.

    Database dismounted.

    ORACLE instance shut down.

    SQL> startup

    ORACLE instance started.


    Total System Global Area 1862269648 bytes

    Fixed Size                  9136848 bytes

    Variable Size             637534208 bytes

    Database Buffers         1207959552 bytes

    Redo Buffers                7639040 bytes

    Database mounted.


    Database opened.

    SQL> SQL> sho parameter compatible


    NAME                                 TYPE        VALUE

    ------------------------------------ ----------- ------------------------------

    compatible                           string      19.0.0

    noncdb_compatible                    boolean     FALSE

    SQL>


    1 comment:

    1. Thanks a ton.
      It is very clear and easy explanation.

      ReplyDelete