DBCA数据库出现RPCR-1071,PRCR-1066,CRS-2566错误的解决过程

本文记录了使用DBCA在Oracle 11g RAC环境中创建数据库过程中遇到的问题及解决步骤,包括处理资源注册失败、监听器配置错误以及权限设置不当等问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

昨天在用DBCA创建数据库的时候,遇到了不少问题,下来来分析一下解决的过程:

先是到59%,以及往后,都会报一些错误,如RPCR-1071,PRCR-1066,CRS-2566 等,点“ok”确认会自动跳过,直到完成。但是最后加载数据库资源的时候还是会报错,先是提示ora.asm11g.db资源不存在,用srvctl手动添加数据库资源到CRS时,又报无法添加数据库资源,以及CRS-2566:Oracle用户没有权限去创建ora.one资源












用oracle用户添加不上数据库的资源,停止has提示权限不足



查看dbca的安装过程日志:

[oracle@zlm ~]$ tail -3000f /u01/app/oracle/cfgtoollogs/dbca/asm11g/trace.log|grep PRCR
[Thread-168] [ 2015-01-06 17:45:07.740 CST ] [HASIDBRegistrationStep.executeImpl:253]  Exception while registering with HAS PRCR-1006 : Failed to add resource ora.asm11g.db for asm11g
PRCR-1071 : Failed to register or update resource ora.asm11g.db
PRCR-1001 : Resource ora.asm11g.db does not exist

也都是报资源不存在,添加和注册数据库资源失败,用grid用户重启一下has

[grid@zlm bin]$ crsctl stop has
CRS-2791: Starting shutdown of Oracle High Availability Services-managed resources on 'zlm'
CRS-2673: Attempting to stop 'ora.DATA.dg' on 'zlm'
CRS-2677: Stop of 'ora.DATA.dg' on 'zlm' succeeded
CRS-2673: Attempting to stop 'ora.asm' on 'zlm'
CRS-2677: Stop of 'ora.asm' on 'zlm' succeeded
CRS-2673: Attempting to stop 'ora.cssd' on 'zlm'
CRS-2677: Stop of 'ora.cssd' on 'zlm' succeeded
CRS-2673: Attempting to stop 'ora.evmd' on 'zlm'
CRS-2677: Stop of 'ora.evmd' on 'zlm' succeeded
CRS-2793: Shutdown of Oracle High Availability Services-managed resources on 'zlm' has completed
CRS-4133: Oracle High Availability Services has been stopped.
[grid@zlm bin]$ crsctl start has
CRS-4123: Oracle High Availability Services has been started.
[grid@zlm bin]$ crs_stat -t
Name           Type           Target    State     Host        
------------------------------------------------------------
ora.DATA.dg    ora....up.type ONLINE    ONLINE    zlm         
ora.asm        ora.asm.type   ONLINE    ONLINE    zlm         
ora.cssd       ora.cssd.type  ONLINE    ONLINE    zlm         
ora.diskmon    ora....on.type OFFLINE   OFFLINE               
ora.evmd       ora.evm.type   ONLINE    ONLINE    zlm         
ora.ons        ora.ons.type   OFFLINE   OFFLINE       

[oracle@zlm asm11g]$ srvctl add database -d asm11g -o $ORACLE_HOME --没有报错,资源添加上了
[oracle@zlm asm11g]$ crs_stat -t
Name           Type           Target    State     Host        
------------------------------------------------------------
ora.DATA.dg    ora....up.type ONLINE    ONLINE    zlm         
ora.asm        ora.asm.type   ONLINE    ONLINE    zlm         
ora.asm11g.db  ora....se.type OFFLINE   OFFLINE               
ora.cssd       ora.cssd.type  ONLINE    ONLINE    zlm         
ora.diskmon    ora....on.type OFFLINE   OFFLINE               
ora.evmd       ora.evm.type   ONLINE    ONLINE    zlm         
ora.ons        ora.ons.type   OFFLINE   OFFLINE               
[oracle@zlm asm11g]$ srvctl start database -d asm11g
PRCR-1079 : Failed to start resource ora.asm11g.db
ORA-12547: TNS:lost contact
CRS-5017: The resource action "ora.asm11g.db start" encountered the following error: 
ORA-12547: TNS:lost contact
. For details refer to "(:CLSN00107:)" in "/g01/app/11.2.0/grid/log/zlm/agent/ohasd/oraagent_grid/oraagent_grid.log".

CRS-2674: Start of 'ora.asm11g.db' on 'zlm' failed
ORA-12547: TNS:lost contact
[oracle@zlm asm11g]$ 

重启has后,资源依然没有自动主导到CRS,但是可以通过srvctl添加数据库资源到CRS了,不再报没有权限等错误,不知道是否是Oracle 11gR2的一个bug。DBCA前需要重启一下has,或者先DBCA装完,然后重启has再添加数据库资源,我使用的是后者的方法

虽然资源添加上了,但是要启动数据库实例这个资源,还是报错,现在是提示TNS丢失连接,既然是TNS的错,那么就先用Oracle用户创建一个tnsnames.ora,完了再用Grid把监听启动(使用GI时,通常是用grid用户创建监听的)

[grid@zlm bin]$ lsnrctl start

LSNRCTL for Linux: Version 11.2.0.3.0 - Production on 07-JAN-2015 00:19:36

Copyright (c) 1991, 2011, Oracle.  All rights reserved.

Starting /g01/app/11.2.0/grid/bin/tnslsnr: please wait...

TNSLSNR for Linux: Version 11.2.0.3.0 - Production
System parameter file is /g01/app/11.2.0/grid/network/admin/listener.ora
Log messages written to /g01/app/grid/diag/tnslsnr/zlm/listener/alert/log.xml
Error listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=zlm)(PORT=1521)))
TNS-12542: TNS:address already in use
 TNS-12560: TNS:protocol adapter error
  TNS-00512: Address already in use
   Linux Error: 98: Address already in use

Listener failed to start. See the error message(s) above...

启动监听依然是报错

根据Linux Error: 98可以判断,发生这种问题是由于端口被程序绑定而没有释放造成
可以使用netstat -lp命令查询当前处于连接的程序以及对应的进程信息
然后用ps pid 察看对应的进程,并使用kill pid 关闭该进程即可

[grid@zlm bin]$ cat /g01/app/11.2.0/grid/network/admin/listener.ora
# listener.ora Network Configuration File: /g01/app/11.2.0/grid/network/admin/listener.ora
# Generated by Oracle configuration tools.

SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (GLOBAL_DBNAME = asm11g)
      (ORACLE_HOME = /g01/app/11.2.0/grid)
      (SID_NAME = asm11g)
    )
  )

LISTENER =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = zlm)(PORT = 1521))
  )

ADR_BASE_LISTENER = /g01/app/grid

[grid@zlm bin]$ echo $ORACLE_SID
+ASM
[grid@zlm bin]$ netca

用grid创建监听,提示1521端口已经被占用了



[root@zlm ~]# netstat -nalp|grep 1521
tcp        0      0 0.0.0.0:1521                0.0.0.0:*                   LISTEN      27855/tnslsnr  
[root@zlm ~]# kill 27855
[root@zlm ~]# netstat -nalp|grep 1521
[root@zlm ~]#

直接启动也是报错:

[oracle@zlm asm11g]$ sqlplus / as sysdba

SQL*Plus: Release 11.2.0.3.0 Production on Wed Jan 7 00:53:52 2015

Copyright (c) 1982, 2011, Oracle.  All rights reserved.

Connected to an idle instance.

SQL> startup
ORA-01078: failure in processing system parameters
ORA-01565: error in identifying file '+DATA/asm11g/spfileasm11g.ora'
ORA-17503: ksfdopn:2 Failed to open file +DATA/asm11g/spfileasm11g.ora
ORA-12547: TNS:lost contact

 <txt>Started with pid=28061
 </txt>
</msg>
<msg time='2015-01-07T01:13:47.048+08:00' org_id='oracle' comp_id='tnslsnr'
 type='UNKNOWN' level='16' host_id='zlm'
 host_addr='180.168.41.175'>
 <txt>Error listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=zlm)(PORT=1521)))
 </txt>
</msg>
<msg time='2015-01-07T01:13:47.048+08:00' org_id='oracle' comp_id='tnslsnr'
 type='UNKNOWN' level='16' host_id='zlm'
 host_addr='180.168.41.175'>
 <txt>TNS-12542: TNS:address already in use
 TNS-12560: TNS:protocol adapter error
  TNS-00512: Address already in use
   Linux Error: 98: Address already in use
 </txt>
</msg>
[grid@zlm alert]$ vi /etc/hosts
[grid@zlm alert]$ cat /etc/hosts
# Do not remove the following line, or various programs
# that require network functionality will fail.
127.0.0.1               localhost.localdomain localhost
::1             localhost6.localdomain6 localhost6
180.168.41.175          zlm

一直报监听被占用的问题原来出在这里,这个主机名的IP地址是自动生成的,没有对其进行过改动,把IP改成正确的,重新启动监听

[grid@zlm ~]$ lsnrctl start

LSNRCTL for Linux: Version 11.2.0.3.0 - Production on 07-JAN-2015 01:17:43

Copyright (c) 1991, 2011, Oracle.  All rights reserved.

TNS-01106: Listener using listener name listener has already been started
[grid@zlm ~]$ lsnrctl stop

LSNRCTL for Linux: Version 11.2.0.3.0 - Production on 07-JAN-2015 01:17:51

Copyright (c) 1991, 2011, Oracle.  All rights reserved.

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=zlm)(PORT=1521)))
The command completed successfully
[grid@zlm ~]$ lsnrctl start

LSNRCTL for Linux: Version 11.2.0.3.0 - Production on 07-JAN-2015 01:17:55

Copyright (c) 1991, 2011, Oracle.  All rights reserved.

Starting /g01/app/11.2.0/grid/bin/tnslsnr: please wait...

TNSLSNR for Linux: Version 11.2.0.3.0 - Production
System parameter file is /g01/app/11.2.0/grid/network/admin/listener.ora
Log messages written to /g01/app/grid/diag/tnslsnr/zlm/listener/alert/log.xml
Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=zlm)(PORT=1521)))

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=zlm)(PORT=1521)))
STATUS of the LISTENER
------------------------
Alias                     LISTENER
Version                   TNSLSNR for Linux: Version 11.2.0.3.0 - Production
Start Date                07-JAN-2015 01:17:55
Uptime                    0 days 0 hr. 0 min. 0 sec
Trace Level               off
Security                  ON: Local OS Authentication
SNMP                      OFF
Listener Parameter File   /g01/app/11.2.0/grid/network/admin/listener.ora
Listener Log File         /g01/app/grid/diag/tnslsnr/zlm/listener/alert/log.xml
Listening Endpoints Summary...
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=zlm)(PORT=1521)))
Services Summary...
Service "asm11g" has 1 instance(s).
  Instance "asm11g", status UNKNOWN, has 1 handler(s) for this service...
The command completed successfully

久违的服务终于注册上了,是之前用grid用户创建的静态监听,但查看日志还是有错误,找不到监听资源,就是还没有被注册到CRS上去

2015-01-07 01:23:45.345: [ USRTHRD][1116309824] {0:0:2} checkCrsStat 2 clscrs_res_get_op_status CLSCRS_STAT status 210 err_msg CRS-0210: Could not find resource 'ora.LISTENER.lsnr'.
2015-01-07 01:23:45.345: [ USRTHRD][1116309824] {0:0:2} AsmCommonAgent::setLocalListener cls::Exception CRS-0210: Could not find resource 'ora.LISTENER.lsnr'.

[grid@zlm oraagent_grid]$ srvctl start database -d asm11g
PRCR-1079 : Failed to start resource ora.asm11g.db
ORA-12547: TNS:lost contact
CRS-5017: The resource action "ora.asm11g.db start" encountered the following error: 
ORA-12547: TNS:lost contact
. For details refer to "(:CLSN00107:)" in "/g01/app/11.2.0/grid/log/zlm/agent/ohasd/oraagent_grid/oraagent_grid.log".

CRS-2674: Start of 'ora.asm11g.db' on 'zlm' failed
ORA-12547: TNS:lost contact

一直报TNS连接丢失,启动数据库资源失败,tail一下提示查看的日志:

[grid@zlm oraagent_grid]$ tail -20f /g01/app/11.2.0/grid/log/zlm/agent/ohasd/oraagent_grid/oraagent_grid.log
2015-01-07 01:30:31.572: [ USRTHRD][1116309824] {0:0:2} CrsCmd::ClscrsCmdData::stat entity 1 statflag 33 useFilter 0
2015-01-07 01:30:31.594: [ USRTHRD][1116309824] {0:0:2} checkCrsStat 2 CLSCRS_STAT ret: 200
2015-01-07 01:30:31.594: [ USRTHRD][1116309824] {0:0:2} checkCrsStat 2 clscrs_res_get_op_status CLSCRS_STAT status 210 err_msg CRS-0210: Could not find resource 'ora.LISTENER.lsnr'.
2015-01-07 01:30:31.594: [ USRTHRD][1116309824] {0:0:2} AsmCommonAgent::setLocalListener cls::Exception CRS-0210: Could not find resource 'ora.LISTENER.lsnr'.
2015-01-07 01:30:31.594: [ USRTHRD][1116309824] {0:0:2} ASM Dedicated Thread }
2015-01-07 01:30:31.594: [ USRTHRD][1116309824] {0:0:2} Thread:ASM DedicatedThreadisRunning is reset to false here

捕捉到的日志提示找不到ora.LISTENER.lsnr资源

[grid@zlm admin]$ crs_stat -t
Name           Type           Target    State     Host        
------------------------------------------------------------
ora.DATA.dg    ora....up.type ONLINE    ONLINE    zlm         
ora.asm        ora.asm.type   ONLINE    ONLINE    zlm         
ora.asm11g.db  ora....se.type ONLINE    OFFLINE               
ora.cssd       ora.cssd.type  ONLINE    ONLINE    zlm         
ora.diskmon    ora....on.type OFFLINE   OFFLINE               
ora.evmd       ora.evm.type   ONLINE    ONLINE    zlm         
ora.ons        ora.ons.type   OFFLINE   OFFLINE      

监听资源确实是没有注册到CRS,用srvctl手动添加一下ora.LISTENER.lsnr

[grid@zlm admin]$ srvctl add listener
PRCN-2061 : Failed to add listener ora.LISTENER.lsnr
PRCN-2065 : Port(s) 1521 are not available on the nodes given
PRCN-2067 : Port 1521 is not available across node(s) "zlm"

这是因为,监听开启的状态下,不能添加到CRS资源,需要先停掉监听后再添加

[grid@zlm admin]$ lsnrctl stop

LSNRCTL for Linux: Version 11.2.0.3.0 - Production on 07-JAN-2015 01:41:03

Copyright (c) 1991, 2011, Oracle.  All rights reserved.

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=zlm)(PORT=1521)))
The command completed successfully
[grid@zlm admin]$ srvctl add listener    <--这次没有报错了
[grid@zlm admin]$ crs_stat -t
Name           Type           Target    State     Host        
------------------------------------------------------------
ora.DATA.dg    ora....up.type ONLINE    ONLINE    zlm         
ora....ER.lsnr ora....er.type OFFLINE   OFFLINE              <--监听已经注册上了
ora.asm        ora.asm.type   ONLINE    ONLINE    zlm         
ora.asm11g.db  ora....se.type ONLINE    OFFLINE               
ora.cssd       ora.cssd.type  ONLINE    ONLINE    zlm         
ora.diskmon    ora....on.type OFFLINE   OFFLINE               
ora.evmd       ora.evm.type   ONLINE    ONLINE    zlm         
ora.ons        ora.ons.type   OFFLINE   OFFLINE               
[grid@zlm admin]$ lsnrctl start

LSNRCTL for Linux: Version 11.2.0.3.0 - Production on 07-JAN-2015 01:41:45

Copyright (c) 1991, 2011, Oracle.  All rights reserved.

Starting /g01/app/11.2.0/grid/bin/tnslsnr: please wait...

TNSLSNR for Linux: Version 11.2.0.3.0 - Production
System parameter file is /g01/app/11.2.0/grid/network/admin/listener.ora
Log messages written to /g01/app/grid/diag/tnslsnr/zlm/listener/alert/log.xml
Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=zlm)(PORT=1521)))

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=zlm)(PORT=1521)))
STATUS of the LISTENER
------------------------
Alias                     LISTENER
Version                   TNSLSNR for Linux: Version 11.2.0.3.0 - Production
Start Date                07-JAN-2015 01:41:45
Uptime                    0 days 0 hr. 0 min. 0 sec
Trace Level               off
Security                  ON: Local OS Authentication
SNMP                      OFF
Listener Parameter File   /g01/app/11.2.0/grid/network/admin/listener.ora
Listener Log File         /g01/app/grid/diag/tnslsnr/zlm/listener/alert/log.xml
Listening Endpoints Summary...
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=zlm)(PORT=1521)))
Services Summary...
Service "asm11g" has 1 instance(s).
  Instance "asm11g", status UNKNOWN, has 1 handler(s) for this service...
The command completed successfully
[grid@zlm admin]$ crs_stat -t
Name           Type           Target    State     Host        
------------------------------------------------------------
ora.DATA.dg    ora....up.type ONLINE    ONLINE    zlm         
ora....ER.lsnr ora....er.type ONLINE    ONLINE    zlm            <--监听的状态为ONLINE了
ora.asm        ora.asm.type   ONLINE    ONLINE    zlm         
ora.asm11g.db  ora....se.type ONLINE    OFFLINE               
ora.cssd       ora.cssd.type  ONLINE    ONLINE    zlm         
ora.diskmon    ora....on.type OFFLINE   OFFLINE               
ora.evmd       ora.evm.type   ONLINE    ONLINE    zlm         
ora.ons        ora.ons.type   OFFLINE   OFFLINE

再次启动数据库资源

[grid@zlm admin]$ srvctl start database -d asm11g
PRCR-1079 : Failed to start resource ora.asm11g.db
ORA-12547: TNS:lost contact
CRS-5017: The resource action "ora.asm11g.db start" encountered the following error: 
ORA-12547: TNS:lost contact
. For details refer to "(:CLSN00107:)" in "/g01/app/11.2.0/grid/log/zlm/agent/ohasd/oraagent_grid/oraagent_grid.log".

CRS-2674: Start of 'ora.asm11g.db' on 'zlm' failed
ORA-12547: TNS:lost contact

还是刚才的错,看来还不光是监听没有注册到CRS的原因,因为现在监听在CRS资源里已经是ONLINE的了

[oracle@zlm dbs]$ sqlplus / as sysdba

SQL*Plus: Release 11.2.0.3.0 Production on Wed Jan 7 01:56:18 2015

Copyright (c) 1982, 2011, Oracle.  All rights reserved.

Connected to an idle instance.

SQL> startup
ORA-01078: failure in processing system parameters
ORA-01565: error in identifying file '+DATA/asm11g/spfileasm11g.ora'
ORA-17503: ksfdopn:2 Failed to open file +DATA/asm11g/spfileasm11g.ora
ORA-12547: TNS:lost contact
SQL> !
[oracle@zlm dbs]$ 

这里出现了ORA-17503的错误,难道是spfileasm11g.ora这个文件不存在?查看了一下,非也
由于之前看到2个目录中的oracle的bin文件的权限状态不太对

oracle:


这个oracle的权限是不对的,没有变成-rwsr-s--x 1 oracle asmadmin

grid:


其实这个grid是对的,加过6571权限了,后面的oracle是红底的状态(正确状态)
而我以为需要给oinstall组,又错误地执行了面的两条命令:
[root@zlm bin]# chown oracle:oinstall /u01 -p
[root@zlm bin]# chown grid:oinstall /g01 -p

所以现在可以得知,就是目录权限的问题导致之前的一系列报错,TNS连接丢失,无法添加或启动资源等(ora.LISTENER.ora的那个除外,是因为IP地址错误配置导致的)

将oracle的owner修改回“oracle asmadmin",并重新配置6571权限:

grid:(不用做,已经是正确的状态了)
[oracle@zlm dbs]$ ls -al $GRID_HOME/bin/oracle
-rwxrwxr-x 1 grid oinstall 203972923 Jan  6 15:41 /g01/app/11.2.0/grid/bin/oracle
[root@zlm bin]# chmod 6751 /g01/app/11.2.0/grid/bin/oracle
[root@zlm bin]# ls -l /g01/app/11.2.0/grid/bin/oracle
-rwsr-s--x 1 grid oinstall 203972923 Jan  6 15:41 /g01/app/11.2.0/grid/bin/oracl

oracle:
[oracle@zlm dbs]$ ls -al $ORACLE_HOME/bin/oracle
-rwxrwxr-x 1 oracle oinstall 232399473 Jan  6 15:57 /u01/app/oracle/product/11.2.0/db_1/bin/oracle
[root@zlm bin]# chown oracle:asmadmin /u01/app/oracle/product/11.2.0/db_1/bin/oracle
-rwxr-x--x 1 oracle asmadmin 232399473 Jan  6 15:57 /u01/app/oracle/product/11.2.0/db_1/bin/oracle
[root@zlm bin]# chmod 6751 /u01/app/oracle/product/11.2.0/db_1/bin/oracle
[root@zlm bin]# ls -l /u01/app/oracle/product/11.2.0/db_1/bin/oracle
-rwsr-s--x 1 oracle asmadmin 232399473 Jan  6 15:57 /u01/app/oracle/product/11.2.0/db_1/bin/oracle

[grid@zlm ~]$ srvctl start database -d asm11g --这次启动不再报错了
[grid@zlm ~]$ crs_stat -t
Name           Type           Target    State     Host        
------------------------------------------------------------
ora.DATA.dg    ora....up.type ONLINE    ONLINE    zlm         
ora....ER.lsnr ora....er.type ONLINE    ONLINE    zlm         
ora.asm        ora.asm.type   ONLINE    ONLINE    zlm         
ora.asm11g.db  ora....se.type ONLINE    ONLINE    zlm         
ora.cssd       ora.cssd.type  ONLINE    ONLINE    zlm         
ora.diskmon    ora....on.type OFFLINE   OFFLINE               
ora.evmd       ora.evm.type   ONLINE    ONLINE    zlm         
ora.ons        ora.ons.type   OFFLINE   OFFLINE          

修正权限问题后,数据库资源就可以正常启动了,以后在GI管理的数据库上DBCA建库,一定要注意目录权限的问题

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值