在redhat 5.5 新安装的双节点RAC,使用ASM存储OCR和votedisk,安装完成后遇到一个问题,可以通过ps -ef | grep asm 查看到asm进程,也可以通过srvctl和crs命令操作asm 实例,但是却不能通过sqlplus和asmcmd进入asm实例,这问题折腾了数天,最终发现是自己的疏忽导致。

通过ps -ef |grep asm  查看一切正常

[grid@hnundb2 ~]$ ps -ef | grep asm

oracle    5740     1  0 Jul19 ?        00:00:21 ora_asmb_ecom2

grid      5748     1  0 Jul19 ?        00:00:00 oracle+ASM2_asmb_ecom2 (DESCRIPTION=(LOCAL=YES)(ADDRESS=(PROTOCOL=beq)))

grid      6553     1  0 Jul18 ?        00:00:16 asm_pmon_+ASM2

grid      6557     1  0 Jul18 ?        00:00:00 asm_vktm_+ASM2

grid      6563     1  0 Jul18 ?        00:00:00 asm_gen0_+ASM2

grid      6567     1  0 Jul18 ?        00:00:00 asm_diag_+ASM2

grid      6571     1  0 Jul18 ?        00:00:18 asm_ping_+ASM2

grid      6575     1  0 Jul18 ?        00:00:00 asm_psp0_+ASM2

asm 实例为+ASM2,设置了ORACLE_SID=+ASM后缺无法进入asm 实例,

[grid@hnundb2 ~]$ export ORACLE_SID=+ASM

[grid@hnundb2 ~]$

[grid@hnundb2 ~]$

[grid@hnundb2 ~]$

[grid@hnundb2 ~]$ sqlplus / as sysdba


SQL*Plus: Release 11.2.0.1.0 Production on Mon Jul 29 14:57:08 2013


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


Connected to an idle instance.


SQL>

使用asmcmd 进入也是如此,如此反复折腾多日。后来查看环境变量设置,

TMP=/tmp; export TMP

   TMPDIR=$TMP; export TMPDIR

ORACLE_SID=+ASM2; export ORACLE_SID

ORACLE_BASE=/u01/app/grid; export ORACLE_BASE

ORACLE_HOME=/u01/app/11.2.0/grid/; export ORACLE_HOME

NLS_DATE_FORMAT="yyyy-mm-dd HH24:MI:SS"; export NLS_DATE_FORMAT

THREADS_FLAG=native; export THREADS_FLAG

PATH=$ORACLE_HOME/bin:$PATH; export PATH

感觉应该跟环境变量有关,修改了一下ORACLE_HOME,把后面的斜线去了,改成ORACLE_HOME=/u01/app/11.2.0/grid,再次尝试时,一切正常。