Imagine you want to migrate your Oracle Database from 12.1.0.2 to 19c. To allow a fallback plan, you most probably will create your 19c database with the same COMPATIBLE as the source database, 12.1.0.2.0.
Talking now about Local Undo, it was first released on 12.2. So what if I try to create my 19c with Local Undo and 12.1.0.2.0 compatible? Will it work?
[oracle@odbfcl-19-0-0-0 dbhome_1]$ sqlplus / as sysdba SQL*Plus: Release 19.0.0.0.0 - Production on Mon Jul 12 13:54:10 2021 Version 19.11.0.0.0 Copyright (c) 1982, 2020, Oracle. All rights reserved. Connected to: Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production Version 19.11.0.0.0 SQL> show parameter compatible NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ compatible string 12.1.0.2.0 noncdb_compatible boolean FALSE SQL> select property_name, property_value 2 from database_properties 3 where property_name = 'LOCAL_UNDO_ENABLED'; PROPERTY_NAME PROPERTY_VALUE ------------------------------ ------------------------------ LOCAL_UNDO_ENABLED TRUE SQL> show pdbs CON_ID CON_NAME OPEN MODE RESTRICTED ---------- ------------------------------ ---------- ---------- 2 PDB$SEED READ ONLY NO 3 PDB01 READ WRITE NO
Yes, it's possible!
I guess local undo doesn't include some new datafile-level functionality that DB 12.1.0.2 wouldn't understand. It's enabled/disabled only in the kernel layer.
So you are probably wondering what would happen if I try to downgrade/unplug/plug/catrelod the 12.1.0.2 database with local undo back in the original release? It does also work (after you apply the fix for bug 21388707)!
Have you enjoyed? Please leave a comment or give a 👍!