PRVF-5300: Failed to retrieve active version for CRS on this node when installing 11.2.0.2 DB on 11.2.0.3.0 Grid Infrastructure
I just played with 11.2.0.3.0 patchset on Linux x86_64 (in my testcase Oracle Enterprise Linux 5.6) and tried to install a 11.2.0.2.0 database on it. It fails with:
PRVF-5300: Failed to retrieve active version for CRS on this node
The error stack in the installation log is:
ID: oracle.install.commons.util.exception.DefaultErrorAdvisor:745 oracle.cluster.verification.VerificationException: An internal error occurred within cluster verification framework ERRORMSG(linux): PRVF-5300 : Failed to retrieve active version for CRS on this node at oracle.cluster.verification.ClusterVerification.getPreReqTasksForSIDBInst(ClusterVerification.java:615) at oracle.install.ivw.db.action.PrereqAction.getProductVerificationTasks(PrereqAction.java:111) at oracle.install.commons.base.interview.common.action.AbstractPrereqAction.execute (AbstractPrereqAction.java:86) at oracle.install.commons.flow.AbstractFlowExecutor.startAction(AbstractFlowExecutor.java:358) at oracle.install.commons.flow.AbstractFlowExecutor.enterVertex(AbstractFlowExecutor.java:571) at oracle.install.commons.flow.AbstractFlowExecutor.transition(AbstractFlowExecutor.java:333) at oracle.install.commons.flow.AbstractFlowExecutor.nextState(AbstractFlowExecutor.java:268) at oracle.install.commons.flow.AbstractFlowExecutor.nextViewState(AbstractFlowExecutor.java:227) at oracle.install.commons.flow.DefaultFlowNavigator.goForward(DefaultFlowNavigator.java:58) at oracle.install.commons.flow.jewt.FlowWizard$1.run(FlowWizard.java:125) at oracle.install.commons.flow.jewt.FlowWizard$TransitionManager$1.run(FlowWizard.java:101) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:417) at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:269) at java.util.concurrent.FutureTask.run(FutureTask.java:123) at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:651) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:676) at java.lang.Thread.run(Thread.java:595)
The problem
I started the installer with debug enabled just add “-debug -logLevel finest >inst1.out 2>inst2.out”). The log files gave some insight:
[Version.getVersion:497] version String is 11.2.0.3.0 [Version.getVersion:498] new Version().toString is 11.2.0.2.0 [VerificationUtil.getSIHAReleaseVersionObj:4986] Configuration Exception: PRKC-1137 : Unable to find Version object with string value 11.2.0.3.0 [VerificationUtil.getCRSUser:1362] Active Version = null
The related query command is
"GI_HOME/bin/crsctl query has releaseversion"
Obviously 11.2.0.2.0 installer has problems with the string “11.2.0.3.0”.
Solution #1
The most simple approach is to start the installer like this:
./runInstaller -ignorePrereq
With that the installer skips al pre-installation tests.
Solution #2
One simple approach was to created a wrapper around crsctl to report a version of 11.2.0.2.0 when querying releaseversion:
cd $GRID_HOME /bin
mv crsctl crsctl.orig
Now create a script “crsctl” with the following contents:
EXEC=/u01/app/oragrid/product/11.2.0.3.0/bin/crsctl.orig case $1 in query) echo "Oracle High Availability Services release version on the local node is [11.2.0.2.0]" ;; *) $EXEC $* ;; esac
You can start the database installation. During the verification steps the installer might report the Oracle Restart Registry as invalid. Just ignore it. The installation should now run fine.
Note that this bug is NOT related to OEL 5.6. It is the installer which cannot deal with the version string of the newer grid infrastructure. So you will face this error on OEL 6, RedHat and SuSE as well.
Dont forget to revert the changes after the installation!
After installation finished i was able to create a database using ASM without any problems. Registering the database into Oracle Restart also worked fine.