This 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
Good morning,
i also hit this bug, but in case when you can’t instal GI PSU with patch 1701 (because you have older PSU on database), you can simply unregister 12.2 databases from restart, create 12.1 database and register 12.2 back.
Regards, Jan
Thanks for this addition, Jan!!!
Cheers
Mike
Hi Mike,
currently I’ve installed actual OCW- 26609966 and DB-Patch 26609817 with opatchauto in a RAC 12.2. an OL7.4.
There was no problems while applying. But now I just wonder why the DB Patch and OCW Patch appears as applied in Grid and Oracle homes:
Grid-Home:
[grid@s********** ~]$ opatch lspatches
26609817;DATABASE RELEASE UPDATE: 12.2.0.1.170814 (26609817)
25586399;ACFS Patch Set Update : 12.2.0.1.170718 (25586399)
26609966;OCW Patch Set Update : 12.2.0.1.170814(26609966)
OPatch succeeded.
RDBMS-Home:
[oracle@s********** ~]$ opatch lspatches
26609817;DATABASE RELEASE UPDATE: 12.2.0.1.170814 (26609817)
26609966;OCW Patch Set Update : 12.2.0.1.170814(26609966)
25811364;OJVM RELEASE UPDATE: 12.2.0.1.170718 (25811364)
Is that expected or should I open a SR?
Many Thanks!
Peter
Peter,
does this happen in the RESTART environment or in a regular cluster?
If it happens in a regular cluster environment I have no idea – and yes, please open an SR (and please update me on the solution – I’m very interested).
Thanks
Mike
Mike,
it’s expected:
see:
https://community.oracle.com/message/14518558#14518558
Regards Peter
Thanks Peter!
Cheers
Mike
Hi, I got hit by this bug. But I don’t quite understand the solution ” You must patch your Grid Infrastructure 12.1.0.2 “. In my case, I have no GI 12.1.
I have a brand new host, I installed Oracle Restart, GI 12.2., then installed Oracle 12.1 and Oracle 12.2. Before I applied any PSU, I was able to create a db in 12.1 and 12.2 using dbca, which will register the db. Then I applied the latest 7/2017 GI patch, then applied DB psu for 12.2. Then I had to create a physical standby in 12.1, when I tried to do srvctl add database. I got that error. Then I applied the July psu for 12.1. No difference. Still the error.
Could it be possible that the patches broke something? As a work around, I am unregistering all the 12.2 db resources. I will finish the 12.1 stuff first.
Thanks
Sorry for the inconvenience – and my fault as I phrased it badly. You must take the PSU or BP for Grid Infrastructure 12.1.0.2 but apply it to your database home. It has a dbhome component included – and this will apply the required patches to your 12.1.0.2 home. In RESTART the homes are owned by the same user. But the required patch is not in the Database PSU for whatever reason.
Cheers
Mike
Hi, Thanks so much for the clarification. I can confirm that your solution works. So, I rolled back my DB PSU in 12.1.0.2 home, downloaded the 12.1.0.2 GI PSU. Just applied DB portion of the PSU in 12.1.0.2 DB home. Then, I added 12.2 db resource via srvctl add db, then I added 12.1 db resource via srvctl add db. It worked.
Typically, I use OVJM+GI combo patch. Since this host has 12.2 GI, I used OVJM+DB combo patch. I guess lesson learned is that always use OVJM+GI patch, even if you only have to apply db only patch.
jw
Hi Mike
For your information.
I just got a similar problem with GI 12.2 and an already existing Database 12.1 which was upgraded to 12.1.
The command srvctl modify database was not working and I got the same error message.
The solution here was: srvctl remove database and srvctl add database.
Best regards
Julian