A while ago I blogged about Fallback Strategy: Flashback Database to Guaranteed Restore Points. I included a recommendation that you must not change the
COMPATIBLE setting. But I should have been a bit more clear and precise about Guaranteed Restore Points and
COMPATIBLE parameter settings.
Guaranteed Restore Points and COMPATIBLE parameter
First of all, you can’t use
FLASHBACK DATABASE to a Guaranteed Restore Point when you changed to COMPATIBLE parameter. This was a common pitfall in older Oracle releases.
But with Oracle Database 126.96.36.199 we add a tiny change which prevents you from accidentally changing
COMPATIBLE while your fallback relies on a Guaranteed Restore Point.
CREATE RESTORE POINT grp GUARANTEE FLASHBACK DATABASE; Restore point created.
In Oracle Database 12.2 you’ll get the following error when you try to advance
ORA-38880: Cannot advance compatibility from 188.8.131.52.0 to 184.108.40.206.0 due to
guaranteed restore points
Hence you have to drop the guaranteed restore point first:
DROP RESTORE POINT grp;
But as you will change
COMPATIBLE usually in the SPFILE with:
ALTER SYSTEM SET compatible='220.127.116.11' SCOPE=SPFILE;
you’ll receive the
ORA-38880 only during a failed startup. Your database won’t mount anymore.
In this case use the following workaround:
SQL> ALTER SYSTEM SET compatible='12.2.0' SCOPE=SPFILE; System altered. SQL> startup force ORACLE instance started. Total System Global Area 1577058304 bytes Fixed Size 8621136 bytes Variable Size 503317424 bytes Database Buffers 1056964608 bytes Redo Buffers 8155136 bytes ORA-38880: Cannot advance compatibility from 18.104.22.168.0 to 22.214.171.124.0 due to guaranteed restore points SQL> create pfile from spfile; File created. SQL> shutdown immediate ORA-01507: database not mounted
Then edit your PFILE in
$ORACLE_HOME/dbs – and restart the database using this PFILE.
Then drop the restore point first – and afterwards you can advance