在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,再次尝试时,一切正常。