ORA15097: cannot SHUTDOWN ASM instance with connected client 和 ORA01031: insufficient privileges 处理方法

停RAC的ASM实例的时候报错:

ORA-15097: cannot SHUTDOWN ASM instance with connected client

srvctl stop asm -n enode1 -f
PRCR-1014 : Failed to stop resource ora.asm
PRCR-1065 : Failed to stop resource ora.asm
CRS-2673: Attempting to stop 'ora.asm' on 'enode1'
ORA-15097: cannot SHUTDOWN ASM instance with connected client
CRS-2675: Stop of 'ora.asm' on 'enode1' failed
CRS-2675: Stop of 'ora.asm' on 'enode1' failed

RAC 环境是Oracle 11gR2。 在Metalink上搜了一下,明白咋回事了。 还是习惯的问题。

在Oracle 10g 环境下,我们停RAC的顺序是:

       (1)数据库

       (2)ASM

       (3)CRS

       但是在Oracle 11gR2下,如果是用OUI来安装的话,除了数据文件之外,OCR 也是放在ASM里的。 11gR2是支持RAW设备的,但是需要手动的安装。

      所以这里就遇到了问题。 OCR也是放在ASM里的,这样CRSD 就会成为ASM的客户端。 如果我们像Oracle 10g里那样直接停ASM的时候,就会报上面的错误。 所以,在11gR2下面,要停ASM实例的话,只能和CRS一起停。

       在root用户下执行:crsctl stop crs

注意:不要直接kill 掉ASM 进程,或者用shutdown abort 来关闭ASM 实例。 这样CRS 也会被挂掉。

在关闭ASM实例的时候,还遇到一个问题:

sqlplus / as sysdba

SQL> shutdown immediate;
ORA-01031: insufficient privileges

SQL>

       提示权限不错,如果遇到这种错误,可以用sqlplus / as  sysasm方式连接。 这样就有了sysasm的权限。

原文地址:https://www.cnblogs.com/weixun/p/3080081.html