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

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

Oracle RESTART: Make sure you’ve patched your Oracle 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, 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 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 -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

What’s wrong?

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

This issue prevents you from adding a 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 have no issues, registering an Oracle database won’t get you this error.


There’s a very simple solution available: You must patch your 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 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!

Oracle RESTART deprecation announcement got withdrawn



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 -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

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 -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 of database or service resource is different from the srvctl version

10 thoughts on “Oracle RESTART: Make sure you’ve patched your Oracle homes

  1. 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

  2. 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@s********** ~]$ opatch lspatches
    26609817;DATABASE RELEASE UPDATE: (26609817)
    25586399;ACFS Patch Set Update : (25586399)
    26609966;OCW Patch Set Update :

    OPatch succeeded.

    [oracle@s********** ~]$ opatch lspatches
    26609817;DATABASE RELEASE UPDATE: (26609817)
    26609966;OCW Patch Set Update :
    25811364;OJVM RELEASE UPDATE: (25811364)

    Is that expected or should I open a SR?
    Many Thanks!

  3. Hi, I got hit by this bug. But I don’t quite understand the solution ” You must patch your Grid Infrastructure “. 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.


    • Sorry for the inconvenience – and my fault as I phrased it badly. You must take the PSU or BP for Grid Infrastructure but apply it to your database home. It has a dbhome component included – and this will apply the required patches to your home. In RESTART the homes are owned by the same user. But the required patch is not in the Database PSU for whatever reason.


      • Hi, Thanks so much for the clarification. I can confirm that your solution works. So, I rolled back my DB PSU in home, downloaded the GI PSU. Just applied DB portion of the PSU in 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.

  4. 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

Leave a Reply

Your email address will not be published. Required fields are marked *

* Checkbox to comply with GDPR is required


I agree

This site uses Akismet to reduce spam. Learn how your comment data is processed.