Oracle 12.2.0.1 RESTART: Make sure you’ve patched your Oracle 12.1.0.2 homes

Oracle 12.2.0.1 RESTART: Make sure you've patched your Oracle 12.1.0.2 homesThis blog post title sounds a bit weird, doesn’t it? Oracle 12.2.0.1 RESTART: Make sure you’ve patched your Oracle 12.1.0.2 homes. Why the heck should you patch your 12.1.0.2 database homes upfront?

Oracle 12.2.0.1 RESTART: Make sure you’ve patched your Oracle 12.1.0.2 homes

Well, there’s an interesting issue happening. When you work with Oracle Grid Infrastructure, no matter if you operate a cluster or “just” use Oracle Restart, you’ll have to upgrade GI to Oracle 12.2 first before you can manage 12.2 databases with it. That’s not new. It’s a well understood rule.

Now guess you operate Oracle RESTART (SIHA – Single Instance High Availability) and you’ve upgraded GI successfully to Oracle 12.2.0.1, patched it already with the most recent RU170718, you register your first Oracle 12.2 database. And all is looking good.

Then you restore an Oracle 12.1.0.2 database and you plan to upgrade it on a later stage.

But when you try to configure the resources you’ll receive this strange error:

srvctl add database -db my12db1_01  -oraclehome /u01/app/oracle/product/12102_1 \
-domain oracle.com -dbname MY12DB1 -instance my12db1 \
–spfile  /u01/app/oracle/product/12102_1/dbs/spfilemy12db1.ora

PRCG-1036 : Internal error.
PRCD-1095 : Failed to retrieve databases for version 11.1 and earlier
PRKC-1137 : Unable to find Version object with string value 12.2.0.1.0

What’s wrong?

If you see this error pattern you have hit:
Bug 20007009 – Cannot add 12.1.0.2 database when cluster contains a 12.2 database (PRCD-1095 / PRKC-1137)

This issue prevents you from adding a 12.1.0.2 database when the cluster contained already an Oracle 12.2 database. Therefore this will hit you only if you registered any 12.2 database resource at first. As database versions lower than 12.1.0.1 have no issues, registering an Oracle 11.2.0.4 database won’t get you this error.

Solution

There’s a very simple solution available: You must patch your 12.1.0.2 database homes up to at least the January 2017 PSU. This is also included for instance in the newer Database Proactive Bundle Patches as well (check the README for OCW (Oracle Clusterware)). PSUs and BPs are cumulative- Therefore the newer ones of course have the fix as well. It is important that you’ll have to take NOT the database PSU but the Grid Infrastructure PSU for 12.1.0.2 as this will contain the patch. The patch will be applied to the database homes. Please do ask Oracle Support and not myself if you have further questions.

Please see this blog post by Alain Fuhrer from Swiss Mobiliar Insurance where we hit the issue.

And just by the way, please remember: Oracle RESTART is back again!

–Mike

Appendix

These are the errors Alain received when he tried to use the srvctl from the Oracle 12.1 home:

oracle@abc:/oradata/u00/app/oracle/product/12102_1/ [MYDB01] srvctl add database -db mydb01_14  -oraclehome /oradata/u00/app/oracle/product/12102_1 -domain our.domain.com -dbname MYDB01 -instance mydb01 -spfile /oradata/u00/app/oracle/product/12102_1/dbs/spfilemydb01.ora

PRCG-1036 : Internal error.
PRCD-1095 : Failed to retrieve databases for version 11.1 and earlier
PRKC-1137 : Unable to find Version object with string value 12.2.0.1.0

oracle@abc:/oradata/u00/app/oracle/product/12102_1/ [MYDB01]

And this happens when you try to register the 12.1 database by using the srvctl of Oracle 12.2:

[myenv] srvctl add database -db mydb01_14  -oraclehome /oradata/u00/app/oracle/product/12102_1 -domain our.domin.com -dbname MYDB01 -instance mydb01 -spfile /oradata/u00/app/oracle/product/12102_1/dbs/spfilemydb01.ora

PRCD-1025 : Failed to create database mydb01_14
PRCD-1298 : Version 12.1.0.2.0 of database or service resource is different from the srvctl version 12.2.0.1.0
Share this: