Couldn’t find a better title for this, but hopefully makes it easier to locate the problem when using your favourite search engine. I tried to manage my 10.2.0.4.1 3 node RAC database “QA” for which I upgraded Grid Infrastructure to 18.104.22.168. The problem arose when I tried to disable the 10g database, and then when I wanted to start it. Here’s the output of my feeble attempt:
[oracle@rac11gr2node1 ~]$ srvctl disable database -d QA
PRKP-1061 : Can not find a service member to start for service qa.
CRS-2518: Invalid directory path ‘/u01/app/grid/product/10.2.0/bin/racgwrap’
CRS-0219: Could not update resource ‘ora.qa.db’.
Ooops. That looked bad, although some other commands worked, like srvctl status database etc. It turned out that the problem is with the database’s resource profile:
export ORACLE_HOME=/u01/app/grid/product/11.2.0/grid # note the 11.2 Grid Infrastructure home! $ORACLE_HOME/bin/crsctl stat res ora.qa.db -p | less NAME=ora.qa.db TYPE=application ACL=owner:oracle:rwx,pgrp:oinstall:rwx,other::r--, ACTION_FAILURE_TEMPLATE= ACTION_SCRIPT=/u01/crs/oracle/product/crs/bin/racgwrap ACTIVE_PLACEMENT=0
This strange behaviour is caused by bug bug 9257105. Even though the upgrade from CRS 10.2 to 11.2 finishes successfully, the OCR configuration for any pre-11.2 database still points to the pre-11.2 CRS home (remember that the 11.2 upgrade is out-of-place!). The bug is fixed with 22.214.171.124.2 and 126.96.36.199.0 (none of which are out yet).
A workaround is availble: as the pre-11.2 database owner, execute the following command for each pre-11.2 database from the Grid Infrastructure home:
[grid@rac11gr2node1:~ ]$ crsctl modify res ora.<dbname>.db -attr "ACTION_SCRIPT=$GRID_HOME/bin/racgwrap"
You can use the crsctl stat res ora.<dbname>.db -p command to check the action script now points to the correct ORACLE_HOME. Done, enjoy!