1、执行:
/usr/sbin/oracleasm scandisks和/usr/sbin/oracleasm listdisks
查看执行结果, listdisk可以正常的将磁盘组可显示出来.
2、切换到 grid 用户下 ,查看ASM实例是否启动,并执行查询
sqlplus / as sysdba
select group_number,path,mount_status,state from v$asm_disk;
select group_number,offline_disks,state from v$asm_diskgroup;
查看磁盘以及磁盘组及其磁盘状态都正常(正常状态为mount);
3、用户组判断
id oracle 和id grid
查看oracle用户是否在admdba组里面,我这里的问题是把oracle加入到asmadmin组,问题解决
usermod -G asmadmin,asmdba,asmoper,dba,oper oracle
4、查看oracle用户和grid用户的$ORACLE_HOME/bin/oracle文件的权限
$ORACLE_HOME/bin/oracle 该文件的默认权限为6751权限,有个s权限,如果s权限消失,这时通过OS认证将不能登录到数据库;
经过对问题的逐一排查,终于找到了问题的所在:
执行 chmod +s oracle 解决问题