此oracle问题本人在论坛上作了提问http://bbs.51cto.com/thread-1167548-1.html,最后自己找到方法解决,以此博客再作记录。

环境:CentOS6.5 64位,Oracle 11g R2 11.2.0.1.0

现象:oracle rac生产环境中,已经有一个实例正常使用,有需求再建一实例。

新建实例过程中,最后步骤具体报错如下:

Oracle 11g R2 RAC dbca新建实例报错_oracle    
[Thread-829] [ 2015-09-09 11:29:42.007 CST ] [DatabaseImpl.createStopDep:3579]  stop dependencies = hard(intermediate:ora.asm,shutdown:ora.DG_DATA.dg)    
[Thread-829] [ 2015-09-09 11:29:42.057 CST ] [InstanceStepOPS.executeImpl:952]  PRCR-1006 : Failed to add resource ora.proxy.db for null    
PRCR-1071 : Failed to register or update resource ora.proxy.db    
CRS-2566: User 'oracle' does not have sufficient permissions to operate on resource 'ora.LISTENER.lsnr', which is part of the dependency specification.    
[Thread-829] [ 2015-09-09 11:29:42.057 CST ] [BasicStep.configureSettings:304]  messageHandler being set=oracle.sysman.assistants.util.UIMessageHandler@30394ffa    
[Thread-829] [ 2015-09-09 11:29:42.057 CST ] [BasicStep.configureSettings:304]  messageHandler being set=oracle.sysman.assistants.util.UIMessageHandler@30394ffa    
oracle.sysman.assistants.util.step.StepExecutionException: PRCR-1006 : Failed to add resource ora.proxy.db for null    
PRCR-1071 : Failed to register or update resource ora.proxy.db    
CRS-2566: User 'oracle' does not have sufficient permissions to operate on resource 'ora.LISTENER.lsnr', which is part of the dependency specification.    
        at oracle.sysman.assistants.dbca.backend.InstanceStepOPS.executeImpl(InstanceStepOPS.java:953)    
        at oracle.sysman.assistants.util.step.BasicStep.execute(BasicStep.java:210)    
        at oracle.sysman.assistants.util.step.BasicStep.callStep(BasicStep.java:251)    
        at oracle.sysman.assistants.dbca.backend.DBEntryStep.executeImpl(DBEntryStep.java:229)    
        at oracle.sysman.assistants.util.step.BasicStep.execute(BasicStep.java:210)    
        at oracle.sysman.assistants.util.step.Step.execute(Step.java:140)    
        at oracle.sysman.assistants.util.step.StepContext$ModeRunner.run(StepContext.java:2667)    
        at java.lang.Thread.run(Thread.java:595)

 

解决办法:

参考了http://www.linuxidc.com/Linux/2015-01/111579.htm文章,

1.尝试用oracle用户手动注册数据库资源,srvctl add database -d proxy -o $ORACLE_HOME,提示已经注册Server pool。

2.使用root用户删除,crsctl delete serverpool ora.proxy

3.使用oracle用户手动注册数据库资源,srvctl add database -d proxy -o $ORACLE_HOME

4.上面执行结果提示权限问题,于是查看报错资源详情,crsctl stat res ora.LISTENER.lsnr -p

5.使用root用户手动修改资源权限,crsctl modify resource "ora.LISTENER.lsnr" -attr "ACL='owner:grid:rwx,pgrp:oinstall:r-x,other::r--'"

以下是解决过程截图:

Oracle 11g R2 RAC dbca新建实例报错_dbca_02    
Oracle 11g R2 RAC dbca新建实例报错_实例_03    
Oracle 11g R2 RAC dbca新建实例报错_oracle_04

 

最后问题解决。问题造成的原因应该是操作时不注意用户,使用root操作了grid的相关操作。