orcle 11g rac crs状态正常,节点2数据库未启动

安装完oracle11g R2 rac后,在节点1上查看数据库状态:

[oracle@node1 ~]$ sqlplus / as sysdba

SQL*Plus: Release 11.2.0.4.0 Production on Wed May 17 18:56:34 2017

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


Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
With the Partitioning, Real Application Clusters, Automatic Storage Management, OLAP,
Data Mining and Real Application Testing options

SQL> SELECT inst_id , instance_number inst_no , instance_name inst_name , parallel , status , database_status db_status , active_state state , host_name host FROM gv$instance ORDER BY inst_id; 

   INST_ID    INST_NO INST_NAME        PAR STATUS	DB_STATUS
---------- ---------- ---------------- --- ------------ -----------------
STATE	  HOST
--------- ----------------------------------------------------------------
	 1	    1 orcl1	       YES OPEN 	ACTIVE
NORMAL	  node1


SQL> 
SQL> quit
# 发现没有节点2的数据库信息

在节点2上查看数据库状态:

[oracle@node2 ~]$ sqlplus / as sysdba

SQL*Plus: Release 11.2.0.4.0 Production on Wed May 17 18:57:48 2017

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

Connected to an idle instance.

SQL> 
SQL> SELECT inst_id , instance_number inst_no , instance_name inst_name , parallel , status , database_status db_status , active_state state , host_name host FROM gv$instance ORDER BY inst_id; 
SELECT inst_id , instance_number inst_no , instance_name inst_name , parallel , status , database_status db_status , active_state state , host_name host FROM gv$instance ORDER BY inst_id
*
ERROR at line 1:
ORA-01034: ORACLE not available
Process ID: 0
Session ID: 0 Serial number: 0


SQL> quit

显示数据库不可用,查看数据库进程,发现数据库进程不在:

[oracle@node2 ~]$ ps -ef | grep ora_
oracle    8718  8048  0 18:58 pts/0    00:00:00 grep --color=auto ora_

查看CRS状态:

[grid@node2 ~]$ crs_stat -t
Name           Type           Target    State     Host        
------------------------------------------------------------
ora.DATA.dg    ora....up.type ONLINE    ONLINE    node1       
ora....ER.lsnr ora....er.type ONLINE    ONLINE    node1       
ora....N1.lsnr ora....er.type ONLINE    ONLINE    node1       
ora.OCRVOTE.dg ora....up.type ONLINE    ONLINE    node1       
ora.asm        ora.asm.type   ONLINE    ONLINE    node1       
ora.cvu        ora.cvu.type   ONLINE    ONLINE    node1       
ora.gsd        ora.gsd.type   OFFLINE   OFFLINE               
ora....network ora....rk.type ONLINE    ONLINE    node1       
ora....SM1.asm application    ONLINE    ONLINE    node1       
ora....E1.lsnr application    ONLINE    ONLINE    node1       
ora.node1.gsd  application    OFFLINE   OFFLINE               
ora.node1.ons  application    ONLINE    ONLINE    node1       
ora.node1.vip  ora....t1.type ONLINE    ONLINE    node1       
ora....SM2.asm application    ONLINE    ONLINE    node2       
ora....E2.lsnr application    ONLINE    ONLINE    node2       
ora.node2.gsd  application    OFFLINE   OFFLINE               
ora.node2.ons  application    ONLINE    ONLINE    node2       
ora.node2.vip  ora....t1.type ONLINE    ONLINE    node2       
ora.oc4j       ora.oc4j.type  ONLINE    ONLINE    node1       
ora.ons        ora.ons.type   ONLINE    ONLINE    node1       
ora.orcl.db    ora....se.type ONLINE    ONLINE    node1       
ora.scan1.vip  ora....ip.type ONLINE    ONLINE    node1   

[grid@node2 ~]$ crsctl status res
NAME=ora.DATA.dg
TYPE=ora.diskgroup.type
TARGET=ONLINE         , ONLINE
STATE=ONLINE on node1, ONLINE on node2

NAME=ora.LISTENER.lsnr
TYPE=ora.listener.type
TARGET=ONLINE         , ONLINE
STATE=ONLINE on node1, ONLINE on node2

NAME=ora.LISTENER_SCAN1.lsnr
TYPE=ora.scan_listener.type
TARGET=ONLINE
STATE=ONLINE on node1

NAME=ora.OCRVOTE.dg
TYPE=ora.diskgroup.type
TARGET=ONLINE         , ONLINE
STATE=ONLINE on node1, ONLINE on node2

NAME=ora.asm
TYPE=ora.asm.type
TARGET=ONLINE               , ONLINE
STATE=INTERMEDIATE on node1, ONLINE on node2

NAME=ora.cvu
TYPE=ora.cvu.type
TARGET=ONLINE
STATE=ONLINE on node1

NAME=ora.gsd
TYPE=ora.gsd.type
TARGET=OFFLINE, OFFLINE
STATE=OFFLINE, OFFLINE

NAME=ora.net1.network
TYPE=ora.network.type
TARGET=ONLINE         , ONLINE
STATE=ONLINE on node1, ONLINE on node2

NAME=ora.node1.vip
TYPE=ora.cluster_vip_net1.type
TARGET=ONLINE
STATE=ONLINE on node1

NAME=ora.node2.vip
TYPE=ora.cluster_vip_net1.type
TARGET=ONLINE
STATE=ONLINE on node2

NAME=ora.oc4j
TYPE=ora.oc4j.type
TARGET=ONLINE
STATE=ONLINE on node1

NAME=ora.ons
TYPE=ora.ons.type
TARGET=ONLINE         , ONLINE
STATE=ONLINE on node1, ONLINE on node2

NAME=ora.orcl.db
TYPE=ora.database.type
TARGET=ONLINE         , ONLINE
STATE=ONLINE on node1, OFFLINE   ----这里显示ora.orcl.db在node2上为OFFLINE

NAME=ora.scan1.vip
TYPE=ora.scan_vip.type
TARGET=ONLINE
STATE=ONLINE on node1

在节点2手动启动数据库:

[grid@node2 ~]$ srvctl start database -d orcl
PRCC-1014 : orcl 已在运行
PRCR-1004 : 资源 ora.orcl.db 已在运行
PRCR-1079 : 无法启动资源 ora.orcl.db
CRS-5017: The resource action "ora.orcl.db start" encountered the following error: 
ORA-01078: failure in processing system parameters
ORA-01565: error in identifying file '+DATA/orcl/spfileorcl.ora'
ORA-17503: ksfdopn:2 Failed to open file +DATA/orcl/spfileorcl.ora
ORA-12547: TNS:lost contact
. For details refer to "(:CLSN00107:)" in "/u01/app/11.2.0/grid/log/node2/agent/crsd/oraagent_oracle/oraagent_oracle.log".

CRS-2674: Start of 'ora.orcl.db' on 'node2' failed
CRS-2528: Unable to place an instance of 'ora.orcl.db' as all possible servers are occupied by the resource

解决办法:

联想到Oracle 11gR2 RAC DBCA无法识别ASM磁盘组时曾修改过grid用户下$ORACLE_HOME/bin/oracle的属性,当时是因为权限问题导致dbca无法访问创建好的ASM磁盘组,查看ORA-17503错误貌似是权限的问题,按照相同的方法修改后问题解决。

[grid@node2 bin]$ pwd
/u01/app/11.2.0/grid/bin
[grid@node2 bin]$ ll oracle
-rwxr-x--x 1 grid oinstall 209854149 5月  16 15:36 oracle

[grid@node2 bin]$ chmod +s oracle
[grid@node2 bin]$ ll oracle
-rwsr-s--x 1 grid oinstall 209854149 5月  16 15:36 oracle

然后启动数据库:

[grid@node2 bin]$ srvctl start database -d orcl

#查看crs状态恢复正常
[grid@node2 ~]$ crsctl status res
NAME=ora.DATA.dg
TYPE=ora.diskgroup.type
TARGET=ONLINE         , ONLINE
STATE=ONLINE on node1, ONLINE on node2

NAME=ora.LISTENER.lsnr
TYPE=ora.listener.type
TARGET=ONLINE         , ONLINE
STATE=ONLINE on node1, ONLINE on node2

NAME=ora.LISTENER_SCAN1.lsnr
TYPE=ora.scan_listener.type
TARGET=ONLINE
STATE=ONLINE on node1

NAME=ora.OCRVOTE.dg
TYPE=ora.diskgroup.type
TARGET=ONLINE         , ONLINE
STATE=ONLINE on node1, ONLINE on node2

NAME=ora.asm
TYPE=ora.asm.type
TARGET=ONLINE               , ONLINE
STATE=INTERMEDIATE on node1, ONLINE on node2

NAME=ora.cvu
TYPE=ora.cvu.type
TARGET=ONLINE
STATE=ONLINE on node1

NAME=ora.gsd
TYPE=ora.gsd.type
TARGET=OFFLINE, OFFLINE
STATE=OFFLINE, OFFLINE

NAME=ora.net1.network
TYPE=ora.network.type
TARGET=ONLINE         , ONLINE
STATE=ONLINE on node1, ONLINE on node2

NAME=ora.node1.vip
TYPE=ora.cluster_vip_net1.type
TARGET=ONLINE
STATE=ONLINE on node1

NAME=ora.node2.vip
TYPE=ora.cluster_vip_net1.type
TARGET=ONLINE
STATE=ONLINE on node2

NAME=ora.oc4j
TYPE=ora.oc4j.type
TARGET=ONLINE
STATE=ONLINE on node1

NAME=ora.ons
TYPE=ora.ons.type
TARGET=ONLINE         , ONLINE
STATE=ONLINE on node1, ONLINE on node2

NAME=ora.orcl.db
TYPE=ora.database.type
TARGET=ONLINE         , ONLINE
STATE=ONLINE on node1, ONLINE on node2

NAME=ora.scan1.vip
TYPE=ora.scan_vip.type
TARGET=ONLINE
STATE=ONLINE on node1

#查看数据库进程
[grid@node2 ~]$ ps -ef | grep ora_
oracle    9271     1  0 19:09 ?        00:00:00 ora_pmon_orcl2
oracle    9273     1  0 19:09 ?        00:00:00 ora_psp0_orcl2
oracle    9275     1  1 19:09 ?        00:00:06 ora_vktm_orcl2
oracle    9279     1  0 19:09 ?        00:00:00 ora_gen0_orcl2
oracle    9281     1  0 19:09 ?        00:00:00 ora_diag_orcl2
oracle    9283     1  0 19:09 ?        00:00:00 ora_dbrm_orcl2
oracle    9285     1  0 19:09 ?        00:00:00 ora_ping_orcl2
oracle    9287     1  0 19:09 ?        00:00:00 ora_acms_orcl2
oracle    9289     1  0 19:09 ?        00:00:00 ora_dia0_orcl2
oracle    9291     1  0 19:09 ?        00:00:00 ora_lmon_orcl2
oracle    9293     1  0 19:09 ?        00:00:01 ora_lmd0_orcl2
oracle    9295     1  0 19:09 ?        00:00:01 ora_lms0_orcl2
oracle    9299     1  0 19:09 ?        00:00:00 ora_rms0_orcl2
oracle    9301     1  0 19:09 ?        00:00:00 ora_lmhb_orcl2
oracle    9303     1  0 19:09 ?        00:00:00 ora_mman_orcl2
oracle    9305     1  0 19:09 ?        00:00:00 ora_dbw0_orcl2
oracle    9307     1  0 19:09 ?        00:00:00 ora_lgwr_orcl2
oracle    9309     1  0 19:09 ?        00:00:00 ora_ckpt_orcl2
oracle    9311     1  0 19:09 ?        00:00:00 ora_smon_orcl2
oracle    9313     1  0 19:09 ?        00:00:00 ora_reco_orcl2
oracle    9315     1  0 19:09 ?        00:00:00 ora_rbal_orcl2
oracle    9317     1  0 19:09 ?        00:00:00 ora_asmb_orcl2
oracle    9319     1  0 19:09 ?        00:00:00 ora_mmon_orcl2
oracle    9323     1  0 19:09 ?        00:00:00 ora_mmnl_orcl2
oracle    9325     1  0 19:09 ?        00:00:00 ora_d000_orcl2
oracle    9327     1  0 19:09 ?        00:00:00 ora_mark_orcl2
oracle    9329     1  0 19:09 ?        00:00:00 ora_s000_orcl2
oracle    9335     1  0 19:09 ?        00:00:00 ora_lck0_orcl2
oracle    9337     1  0 19:09 ?        00:00:00 ora_rsmn_orcl2
oracle    9400     1  0 19:10 ?        00:00:00 ora_gtx0_orcl2
oracle    9402     1  0 19:10 ?        00:00:00 ora_rcbg_orcl2
oracle    9404     1  0 19:10 ?        00:00:00 ora_qmnc_orcl2
oracle    9433     1  0 19:10 ?        00:00:00 ora_cjq0_orcl2
oracle    9443     1  0 19:10 ?        00:00:00 ora_q000_orcl2
oracle    9445     1  0 19:10 ?        00:00:00 ora_q001_orcl2
oracle    9657     1  0 19:15 ?        00:00:00 ora_smco_orcl2
oracle    9659     1  0 19:15 ?        00:00:00 ora_w000_orcl2
oracle    9684     1  0 19:16 ?        00:00:00 ora_pz99_orcl2
grid      9702  9501  0 19:17 pts/1    00:00:00 grep --color=auto ora_

[grid@node2 ~]$ crs_stat -t
Name           Type           Target    State     Host        
------------------------------------------------------------
ora.DATA.dg    ora....up.type ONLINE    ONLINE    node1       
ora....ER.lsnr ora....er.type ONLINE    ONLINE    node1       
ora....N1.lsnr ora....er.type ONLINE    ONLINE    node1       
ora.OCRVOTE.dg ora....up.type ONLINE    ONLINE    node1       
ora.asm        ora.asm.type   ONLINE    ONLINE    node1       
ora.cvu        ora.cvu.type   ONLINE    ONLINE    node1       
ora.gsd        ora.gsd.type   OFFLINE   OFFLINE               
ora....network ora....rk.type ONLINE    ONLINE    node1       
ora....SM1.asm application    ONLINE    ONLINE    node1       
ora....E1.lsnr application    ONLINE    ONLINE    node1       
ora.node1.gsd  application    OFFLINE   OFFLINE               
ora.node1.ons  application    ONLINE    ONLINE    node1       
ora.node1.vip  ora....t1.type ONLINE    ONLINE    node1       
ora....SM2.asm application    ONLINE    ONLINE    node2       
ora....E2.lsnr application    ONLINE    ONLINE    node2       
ora.node2.gsd  application    OFFLINE   OFFLINE               
ora.node2.ons  application    ONLINE    ONLINE    node2       
ora.node2.vip  ora....t1.type ONLINE    ONLINE    node2       
ora.oc4j       ora.oc4j.type  ONLINE    ONLINE    node1       
ora.ons        ora.ons.type   ONLINE    ONLINE    node1       
ora.orcl.db    ora....se.type ONLINE    ONLINE    node1       
ora.scan1.vip  ora....ip.type ONLINE    ONLINE    node1

再次检查数据库状态,恢复正常:

[oracle@node2 ~]$ sqlplus / as sysdba

SQL*Plus: Release 11.2.0.4.0 Production on Wed May 17 19:40:37 2017

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


Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
With the Partitioning, Real Application Clusters, Automatic Storage Management, OLAP,
Data Mining and Real Application Testing options

SQL> SELECT inst_id , instance_number inst_no , instance_name inst_name , parallel , status , database_status db_status , active_state state , host_name host FROM gv$instance ORDER BY inst_id; 

   INST_ID    INST_NO INST_NAME        PAR STATUS	DB_STATUS
---------- ---------- ---------------- --- ------------ -----------------
STATE	  HOST
--------- ----------------------------------------------------------------
	 1	    1 orcl1	       YES OPEN 	ACTIVE
NORMAL	  node1

	 2	    2 orcl2	       YES OPEN 	ACTIVE
NORMAL	  node2


SQL>