A colleague brought this to my attention the other week. And since the blog serves also as my partial memory, I wanted to put this out quickly. It is not a big deal, and most of you will never see this or be affected by it. Still, some may need to be aware that OCW 19.28 contains a tiny behavior change with DB_UNIQUE_NAME.

Photo by Anton Ryazanov on Unsplash
What has happened?
In the Oracle Clusterware (OCW) Release Update (RU) 19.28 and onward you will find a fix for Bug 34966087 – AH: CRS: FAIL START ACTION IF DB RESOURCE NAME IS NOT DB_UNIQUE_NAME. This fix has been included into:
- OCW 19.28.0
- OCW 23.9.0
Since Release Updates are cumulative, the fix is in all following Release Updates as well. Hence, it will affect you as well potentially when you patch your Grid Infrastructure (GI) from 19.25 to 19.29 for instance.
When you add a database resource to clusterware, it is expected to pass in DB_UNIQUE_NAME. Subsequently, the resource name would appear as ora.<db_unique_name>.db. All of you who use RAC know that already. The command to do this is:
srvctl add database -db <db_unique_name>
But you’ve had the possibility to use a different value than the DB_UNIQUE_NAME, for instance the DB_NAME instead. Doing so could lead potentially to issues later on.
To fix this, from OCW 19.28 and 23.9 a check happens and compares whether the string in the resource name matches DB_UNIQUE_NAME in the init.ora/spfile. If it doesn’t an exception is raised, the instance start action fails. This check is the fix for Bug 34966087 – AH: CRS: FAIL START ACTION IF DB RESOURCE NAME IS NOT DB_UNIQUE_NAME.
There was no such check or enforcement in previous RUs.
Of course, this is a very useful check, and there is a legit reason that we include it. But I understand that for some of you this may lead to an unexpected behavior change. Therefore, it is time to check your resources now when you are planning to patch from an OCW level below 19.28 or 23.9 to a higher one.
The problem unfortunately happens during the rolling patching run if you don’t take action beforehand.
Error pattern
These are the errors you will see:
srvctl start instance -d orcl -i orcl2 PRCR-1013 : Failed to start resource ora.orcl.db PRCR-1064 : Failed to start resource ora.orcl.db on node mikesnode002 CRS-5017: The resource action "ora.orcl.db start" encountered the following error: CRS-5076: Startup of database resource 'ora.orcl.db' is failing because DB_UNIQUE_NAME 'orcl_rac' is not expected. . For details refer to "(:CLSN00107:)" in "/u01asm/appl/oraclegrid/19.3/diag/crs/mikesnode002/crs/trace/crsd_oraagent_oraomni.trc". CRS-2674: Start of 'ora.orcl.db' on 'mikesnode002' failed
I think it is pretty obvious where the check comes in when it moans about:
CRS-5076: Startup of database resource 'ora.orcl.db' is failing because DB_UNIQUE_NAME 'orcl_rac' is not expected.
That’s the result of the DB_UNIQUE_NAME in the spfile not matching the designated pattern in the CRS resource associated with this database.
The solution?
Luckily, there is a MOS note already describing the pattern, and of course the solution as well:
KB751036 – CRS-5076: Startup of database resource ‘ora.<db_unique_name>.db’ is failing because DB_UNIQUE_NAME ‘<DB_NAME>’ is not expected.
The solution is pretty straight forward:
- Identify the resource(s)
- Remove the resource(s)
- Recreate the resource(s) correctly with the DB_UNIQUE_NAME
Find the whole solution step-by-step in KB751036.
Further Links and Information
- (KI36446) Bug 34966087 – CRS Starts Database Even When Value is different for “DB Resource Name” and “DB_UNIQUE_NAME”
- (KB751036) CRS-5076: Startup of database resource ‘ora.<db_unique_name>.db’ is failing because DB_UNIQUE_NAME ‘<DB_NAME>’ is not expected.
–Mike