今天在oracle linux 6.3下面安装11.2.0.4的数据库,出现了如下恶心的报错
后台报错如下:
---# Begin Stacktrace #---------------------------
ID: oracle.install.commons.util.exception.DefaultErrorAdvisor:2124
oracle.cluster.verification.VerificationException: An internal error occurred within cluster verification framework
Unable to obtain network interface list from Oracle ClusterwarePRCT-1011 : Failed to run "oifcfg". Detailed error: null
at oracle.cluster.verification.ClusterVerification.getPreReqTasksForDBInst(ClusterVerification.java:534)
at oracle.install.ivw.db.action.PrereqAction.getProductVerificationTasks(PrereqAction.java:115)
at oracle.install.commons.base.interview.common.action.AbstractPrereqAction.execute(AbstractPrereqAction.java:86)
at oracle.install.commons.flow.AbstractFlowExecutor.startAction(AbstractFlowExecutor.java:365)
at oracle.install.commons.flow.AbstractFlowExecutor.enterVertex(AbstractFlowExecutor.java:600)
at oracle.install.commons.flow.AbstractFlowExecutor.transition(AbstractFlowExecutor.java:340)
at oracle.install.commons.flow.AbstractFlowExecutor.nextState(AbstractFlowExecutor.java:275)
at oracle.install.commons.flow.AbstractFlowExecutor.nextViewState(AbstractFlowExecutor.java:234)
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:415)
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:662)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:688)
at java.lang.Thread.run(Thread.java:637)
---# End Stacktrace #-----------------------------
妈的,搜了下,原来是是环境变量的问题多设置了ORA_NLS10=$ORACLE_HOME/nls/data,注释掉就OK了。查了metalink,PRCT-1011 : Failed to run "oifcfg" (Doc ID 1380183.1)
如下给需要的人:
In this Document
Purpose
Details
Issue#1 - Wrong ORA_NLS10 Setting
--- Symptoms ---
--- Solution ---
Issue#2 - Incorrect Network Setting in OCR
--- Symptoms ---
--- Solution ---
References
APPLIES TO:
Oracle Database - Enterprise Edition - Version 11.2.0.1 and later
Information in this document applies to any platform.
***Checked for relevance on 03-Jul-2013***
PURPOSE
This note lists known issues, workaround and solutions for error: PRCT-1011 : Failed to run "oifcfg"
DETAILS
Issue#1 - Wrong ORA_NLS10 Setting
--- Symptoms ---
11gR2 runInstaller fails:
OUI log
SEVERE: [FATAL] An internal error occurred within cluster verification framework
Unable to obtain network interface list from Oracle ClusterwarePRCT-1011 : Failed to run "oifcfg". Detailed error: null.
Refer associated stacktrace #oracle.install.commons.util.exception.DefaultErrorAdvisor:1368
..
INFO: Advice is ABORT
SEVERE: Unconditional Exit
Call stack
---# Begin Stacktrace #---------------------------
ID: oracle.install.commons.util.exception.DefaultErrorAdvisor:1368
oracle.cluster.verification.VerificationException: An internal error occurred within cluster verification framework
Unable to obtain network interface list from Oracle ClusterwarePRCT-1011 : Failed to run "oifcfg". Detailed error: null
at oracle.cluster.verification.ClusterVerification.getPreReqTasksForDBInst(ClusterVerification.java:528)
at oracle.install.ivw.db.action.PrereqAction.getProductVerificationTasks(PrereqAction.java:115)
at oracle.install.commons.base.interview.common.action.AbstractPrereqAction.execute(AbstractPrereqAction.java:86)
at oracle.install.commons.flow.AbstractFlowExecutor.startAction(AbstractFlowExecutor.java:361)
at oracle.install.commons.flow.AbstractFlowExecutor.enterVertex(AbstractFlowExecutor.java:596)
at oracle.install.commons.flow.AbstractFlowExecutor.transition(AbstractFlowExecutor.java:336)
at oracle.install.commons.flow.AbstractFlowExecutor.nextState(AbstractFlowExecutor.java:271)
at oracle.install.commons.flow.AbstractFlowExecutor.nextViewState(AbstractFlowExecutor.java:230)
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:432)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:284)
at java.util.concurrent.FutureTask.run(FutureTask.java:138)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:678)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:703)
at java.lang.Thread.run(Thread.java:811)
---# End Stacktrace #-----------------------------
SRVM trace
[pool-1-thread-1] [ 2011-11-21 13:54:01.314 EST ] [RuntimeExec.runCommand:77] /ocw/grid/bin/oifcfg getif
[Thread-230] [ 2011-11-21 13:54:01.382 EST ] [StreamReader.run:61] In StreamReader.run
[Thread-231] [ 2011-11-21 13:54:01.382 EST ] [StreamReader.run:61] In StreamReader.run
[pool-1-thread-1] [ 2011-11-21 13:54:01.381 EST ] [RuntimeExec.runCommand:142] runCommand: Waiting for the process
[Thread-230] [ 2011-11-21 13:54:01.914 EST ] [StreamReader.run:65] OUTPUT>
[Thread-230] [ 2011-11-21 13:54:01.915 EST ] [StreamReader.run:65] OUTPUT> Failed to initialize GPnP
[pool-1-thread-1] [ 2011-11-21 13:54:01.927 EST ] [RuntimeExec.runCommand:144] runCommand: process returns 1
..
[pool-1-thread-1] [ 2011-11-21 13:54:01.932 EST ] [CmdToolUtil.doexecute:473] nativeSystem.runRemoteExecCmd failed. Command = /ocw/grid/bin/oifcfg arguments = [getif] env = null error = null
[pool-1-thread-1] [ 2011-11-21 13:54:01.934 EST ] [TaskFactory.getNetIfFromOifcfg:3522] INSTALLEXCEPTION: cannot obtain cluster interface information.
oifcfg getif output as 11gR2 installation user:
/ocw/grid/bin/oifcfg getif
Failed to initialize GPnP
--- Solution ---
Either unset ORA_NLS10 or set it to correct location before starting OUI:
unset ORA_NLS10
OR
export ORA_NLS10=$GRID_HOME/nls/data
Refer to Note 1050472.1 for more details.
Issue#2 - Incorrect Network Setting in OCR
--- Symptoms ---
11gR2 runInstaller error:
OUI reports INS-20802 as CVU post installation check fails
installation log or CVU error
Result: User equivalence check passed for user "grid"
ERROR:
Unable to obtain network interface list from Oracle ClusterwarePRCT-1011 : Failed to run "oifcfg". Detailed error: null
Verification cannot proceed
oifcfg getif output
oifcfg getif
PROC-4: The cluster registry key to be operated on does not exist.
PRIF-11: cluster registry error
--- Solution ---
In this example, eth1 is the private network and eth3 is the public network.
2.1. As root, execute the following to generate an ocr dump file:
# $GRID_HOME/bin/ocrdump /tmp/dump.ocr1
2.2. As root, find out all network information in the OCR:
# grep 'css.interfaces' /tmp/dump.ocr1 | awk -F \] '{print $1}' | awk -F \. '{print $5}' | sort -u
eth1
eth3
2.3. As root, remove network info from OCR:
# $GRID_HOME/bin/oifcfg delif -global eth1 -force
# $GRID_HOME/bin/oifcfg delif -global eth3 -force
2.4. As grid user, find out the network information at OS level
$ $GRID_HOME/bin/oifcfg iflist -p -n
..
eth1 10.1.0.128 PRIVATE 255.255.255.128
eth1 169.254.0.0 UNKNOWN 255.255.192.0
..
eth3 10.1.0.0 PRIVATE 255.255.255.128
Note: HAIP (169.254.x.x) should be ignored in the output
2.5. As grid user, set network info in OCR:
$ $GRID_HOME/bin/oifcfg setif -global eth1/10.1.0.128:cluster_interconnect
$ $GRID_HOME/bin/oifcfg setif -global eth3/10.1.0.0:public
2.6. As grid user, confirm the change:
$ $GRID_HOME/bin/oifcfg getif
eth1 10.1.0.128 global cluster_interconnect
eth3 10.1.0.0 global public