操作系统:RedHat Linux 6.4
在使用DBCA创建Oracle数据库的时候,发现找不到ASM磁盘组:
错误排查:
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组里面
4、查看oracle用户和grid用户的$ORACLE_HOME/bin/oracle文件的权限
$ORACLE_HOME/bin/oracle该文件的默认权限为6751权限,有个s权限,如果s权限消失,这时通过OS认证将不能登录到数据库;
经过对问题的逐一排查,终于找到了问题的所在:
执行 chmod +s oracle 解决问题
总结:
DBCA建库找不到ASM磁盘的问题所在:
1. Incorrect permission setting for oracle user.
2. ASM instance was not started or diskgroups are not mounted.
3. The diskgroup resources are not online.
4. The permission setting for the asm devices are incorrect.
5. The oracle executable under /bin has incorrect permission settings.
6. the file system for grid home was mounted with option ’nosuid’.