oracle 集群无法启动 报错CRS-0804 PROC-26
环境:oracle 12.2.0.1
OS:redhat 7.4
集群alert日志中报错如下,PROC-26: Error while accessing the physical storage Storage这里还以为是存储的问题,还让存储的人看了存储,在这里其实不是存储的问题
2018-04-05 15:16:53.918 [CRSD(2697)]CRS-8500: Oracle Clusterware CRSD process is starting with operating system process ID 2697
2018-04-05 15:17:00.608 [CRSD(2697)]CRS-1013: The OCR location in an ASM disk group is inaccessible. Details in /u01/app/grid/diag/crs/<name>/crs/trace/crsd.trc.
2018-04-05 15:17:00.615 [CRSD(2697)]CRS-0804: Cluster Ready Service aborted due to Oracle Cluster Registry error [PROC-26: Error while accessing the physical storage Storage layer error [Insufficient quorum to open OCR devices] [0]]. Details at (:CRSD00111:) in /u01/app/grid/diag/crs/<name>/crs/trace/crsd.trc.
trace 文件中报错如下error=ORA-01017: invalid username/password
: USRTHRD:368556352: {0:9:3} 6425 Error 4 querying length of attr ASM_STATIC_DISCOVERY_ADDRESS
: CLSCRED:368556352: (:CLSCRED1079:)clsCredOcrKeyExists: Obj dom : SYSTEM.credentials.domains.root.ASM.Self.af16666dbxxxxxxxbfda990c1a2fee1d.root not found
: USRTHRD:368556352: {0:9:3} 6210 Error 4 opening dom root in 0x7fb51026f530
:kgfn.c@6356: kgfnGetNodeType: flags=0x10
:kgfn.c@6369: kgfnGetNodeType: ntyp=1
:kgfn.c@4644: kgfnConnect2: kgfnGetBeqData failed
:kgfn.c@4680: kgfnConnect: srvr valid
:kgfn.c@5972: kgfnConnect2Int: sysasm=0 envflags=0x10 srvrflags=0x1 unam=crsuser__asm_001 password is NOT NULL pstr=_ocr
:kgfn.c@6121: kgfnConnect2Int: hosts=1
:kgfn.c@6134: kgfnConnect2Int: cstr=(DESCRIPTION=(TRANSPORT_CONNECT_TIMEOUT=60)(EXPIRE_TIME=1)(LOAD_BALANCE=ON)(ADDRESS_LIST=(ADDRESS=(PROTOCOL=tcp)(HOST=192.xxx.16.24)(PORT=1522)))(CONNECT_DATA=(SERVICE_NAME=+ASM)))
:kgfn.c@6200: kgfnConnect2Int: OCISessionBegin failed
:kgfn.c@1602: kgfnRecordErrPriv: status=-1 at kgfn.c:6284
:kgfn.c@1648: kgfnRecordErrPriv: 1017 error=ORA-01017: invalid username/password; logon denied
问题原因:
The “SYSTEM.credentials.domains.root.ASM.Self.af16666dbxxxxxxxbfda990c1a2fee1d.root not found” 说明是 “crsuser__asm_001” 用户损坏或者是空。
解决办法:
1.重建数据库的密码文件:参考((Doc ID 2139591.1))
2.最快速的临时解决办法就是grid用户启动ASM实例
然后root用户用启动资源的方式启动CRS进程
crsctl start res ora.crsd -init
知识补充:
oracle 12C的集群默认是fixed asm模式,在这种模式下CRSUSER__ASM_001被授予CRSD,asmcmd等使用的sysasm角色,而ORACLE_001被授予数据库使用的sysdba角色。
它们用于在Flex ASM模式下内部与远程ASM实例进行通信。