Oracle 12.2 underscores appear in SPFILE – be aware when you flashback

Oracle 12.2 underscores appear in SPFILE - be aware when you flashbackI did blog in the past weeks about Fallback Strategies with Flashback Database. But two of my reference customers came across an interesting issue when they tried to fallback: Oracle 12.2 underscores appear in the SPFILE – magically – and prevent the fallback using the existing SPFILE.

Oracle 12.2 underscores appear in SPFILE – be aware when you flashback

In one case it happened during a test, in the other case it happened during a live fallback after the Data Guard Broker has interfered with the upgrade causing real trouble. In both cases the SPFILE sits in ASM.

Both customers upgraded their databases to Oracle Database 12.2.0.1 with the latest RU installed.

Both customers tried to flashback the database. As you do this in Oracle Database 12.2.0.1 all works fine. But when you try to MOUNT the database in the before-upgrade environment, you will receive this error:

SQL> startup mount
ORA-01078: failure in processing system parameters
LRM-00101: unknown parameter name '__inmemory_ext_roarea'

The database can’t be mounted anymore.

What has happened?

Actually four underscore parameters accidentally got written into the SPFILE during upgrade to Oracle Database 12.2.0.1.:

_inmemory_ext_roarea 
_inmemory_ext_rwarea
_upgrade_capture_noops
_upgrade_optim

That’s not nice. And these – of course to the previous release unknown – parameters prevent database mount/startup.

The inmemory parameters get tracked as bug 26695380 - PARAMETERS _INMEMORY_EXT_ROAREA AND _INMEMORY_EXT_RWAREA BLOCK FALLBACK. The upgrade parameters dealing with Multitenant get tracked as bug 26811983 - PARAMETERS _UPGRADE_CAPTURE_NOOPS AND _UPGRADE_OPTIM BLOCK FALLBACK. Both should be fixed in a future Oracle Database release.

How to avoid it

You must create a copy of your SPFILE before upgrade to avoid such surprises. But if you hit this situation you can do this:

SQL> create pfile from spfile;
File created.

Afterwards you will edit your PFILE, remove the four not-known parameters and mount the database.

SQL> startup mount pfile='/u01/app/oracle/product/11.2.0.4/dbs/initUPGR.ora'

Then you can proceed.

–Mike

Share this: