Oracle用户和grid用户必须有相同的组,并且 ASM Disk的属组要和这个组保持一致,否则数据库无法访问ASM磁盘不能成功启动。

安装PSU或安装one-off patch补丁时,在relink编译oracle执行文件后文件的group ownership属组可能会发生改变,对比可以和oracle 执行文件相同路径下的oracle0文件(上一版oracle的mv)查看。 当oracle用户和oracle执行文件都没有OS ASM属组如asmadmin时,会无法读取ASM disk. 解决方法,手动修改或使用setasmgidwrap 修改;使用srvctl 启动实例,让oracle自动修改,但如果srvctl未修改,同样需要手动修改。

使用srvctl start instance 时如果没有修改为正确的权限,很可能是srvctl add database有不正确的地方,我这有一套库发现没有srvctl add database 时没有指定disk group ,所以无法根据ASM DISKGROUP 权限修改oracle group ownership

$ORACLE_HOME/bin/oracle 可执行文件正确属主应该是 oracle:asmadmin,并且权限必须有s共享才可以

如果oracle可执行文件权限不对,可以执行下面命令:

${GI_HOME}/bin/setasmgidwrap -o ${ORACLE_HOME}/bin/oracle