Thursday, April 10, 2014

When Starting the Database with Srvctl – ORA-29760

When starting a database  with srvctl,

srvctl start database -d test

the errors are returned:
PRCR-1079 : Failed to start resource ora.test.db
CRS-5017: The resource action "ora.test.db start" encountered the following error:
ORA-29760: instance_number parameter not specified
. For details refer to "(:CLSN00107:)" in "/oragi/product/11.2.0.2/grid/log/node1/agent/crsd/oraagent_oracle/oraagent_oracle.log".

PRCR-1079 : Failed to start resource ora.test.db
CRS-5017: The resource action "ora.test.db start" encountered the following error:
ORA-29760: instance_number parameter not specified
. For details refer to "(:CLSN00107:)" in "/oragi/product/11.2.0.2/grid/log/node2/agent/crsd/oraagent_oracle/oraagent_oracle.log".



Issue:
    

The database and instance names have been defined in lowercase in the cluster registry (OCR), which is why srvctl start database is being passed the argument 'test'.

However, in the spfile or pfile  the instance names have been defined in uppercase:

TEST1.instance_number=1
TEST2.instance_number=2

Solution:

Srvctl is case sensitive so you need to ensure that the instance and database definitions set in the spfile are the same case as those in the OCR and as are used in the srvctl commands. If they are not then either:

1. modify the spfile:
    SQL>create pfile from spfile;
    edit the pfile to alter all definitions to the correct case
    SQL>create spfile from pfile <path to pfile>;
or

2. modify the definitions in the OCR:
   srvctl remove instance -d test -i test1
   srvctl remove instance -d test -i test2
   srvctl remove database -d test
   srvctl add database -d TEST -o $ORACLE_HOME
   srvctl add instance -d TEST -i TEST1 -n <node1>
   srvctl add instance -d TEST -i TEST2 -n <node2>